PDA

Просмотр полной версии : проблема с [embed] в Idea Intellij


Tasmanec
07.09.2011, 19:22
Всем доброго времени суток.
Коряво работает(или вообще не осуществимо в среде?) embed в Idea Intellij.


package {
import flash.display.*;

public class Main extends MovieClip{
[Embed(source = "fon.jpg")] public var pic:Class;

public function Main() {
var pic1:Bitmap = new pic() as Bitmap;
addChild(pic1);
}
}
}


приложение закрывается сразу после запуска(
картинка лежит в каталоге с классом.
Может кто знает в чем проблема?

КорДум
07.09.2011, 19:23
Нужно указывать относительно выходного swf-файла.

Tasmanec
07.09.2011, 19:33
Нужно указывать относительно выходного swf-файла.

При использовании [Embed(source)], путь указывается относительно каталога с классом.
Относительно выходного swf-файла указывается путь при использовании Loader()

Не в пути к фалу собака зарыта:o

КорДум
07.09.2011, 19:37
Хм, и правда. Всегда думал, что относительно swf.

xdoom
21.03.2012, 13:15
Другая ошибка.
Уже поставил чистую виртуальную машину, идею 11.0.2;

вылетает при любом эмбэде где угодно... о.О
[Embed (source="../../../assets/compassCenter.png")] private var compassCenterClass:Class;
С криками...
com.intellij.lang.javascript.flex.debug.FlexStackFrame@20b9ad57
[Fault] exception, information=VerifyError: Error #1014: Class mx.core::BitmapAsset could not be found.
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.RangeCheck(Unknown Source)
at java.util.ArrayList.get(Unknown Source)
at flash.tools.debugger.concrete.DManager.getFrame(DManager.java:671)
at flash.tools.debugger.concrete.PlayerSession.pullUpActivationObjectVariables(PlayerSession.java:1113)
at flash.tools.debugger.concrete.PlayerSession.requestFrame(PlayerSession.java:1091)


хотя в FB и FD ок, эти же сорсы собираются..
o.O

Bgg
21.03.2012, 13:24
Другая ошибка.
Уже поставил чистую виртуальную машину, идею 11.0.2;

вылетает при любом эмбэде где угодно... о.О
[Embed (source="../../../assets/compassCenter.png")] private var compassCenterClass:Class;
С криками...
com.intellij.lang.javascript.flex.debug.FlexStackFrame@20b9ad57
[Fault] exception, information=VerifyError: Error #1014: Class mx.core::BitmapAsset could not be found.
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.RangeCheck(Unknown Source)
at java.util.ArrayList.get(Unknown Source)
at flash.tools.debugger.concrete.DManager.getFrame(DManager.java:671)
at flash.tools.debugger.concrete.PlayerSession.pullUpActivationObjectVariables(PlayerSession.java:1113)
at flash.tools.debugger.concrete.PlayerSession.requestFrame(PlayerSession.java:1091)


хотя в FB и FD ок, эти же сорсы собираются..
o.O
IntelliJ тут не причем. Копайтесь в настройках проекта:
http://www.flashdevelop.org/community/viewtopic.php?f=6&t=8390
http://www.actionscripterrors.com/?p=49
http://stackoverflow.com/questions/2889171/mx-corebitmapasset-could-not-be-found

xdoom
21.03.2012, 21:45
да... не знал что нужно указывать в свойствах компилятора
-static-link-runtime-shared-libraries

всё ок
спасиб!

wvxvw
22.03.2012, 01:11
В принципе можно обойтись и без -static-link-runtime-shared-libraries, только в таком случае нужно [Embed] над классом а не над переменной писать. В таком случае компилятор не будет создавать (и без того не нужные) классы типа BitmapAsset. Заодно можно будет вменяемые имена классам дать, ну и методы / свойства добавить если нужно, документацию и т.п.