отобразить картинку из другого swf созданного в swfmill????
Пытался так:
import flash.display.BitmapData;
import flash.display.Bitmap;
class Kartinka extends BitmapData { public function new() { super(10,10); }}
class LoadSwfImage {
public function new() {
var bitmap = new Bitmap(new Kartinka(), flash.display.PixelSnapping.AUTO, false);
flash.Lib.current.addChild(bitmap);
}
public static function main():Void {
new LoadSwfImage();
}
}
Компилю вот так:
-main LoadSwfImage
-swf out/LoadSwfImage.swf
-swf-version 9
-swf-lib art.swf
-swf-header 500:500:120:e0e0ff
В итоге у меня в углу белый квадрати 10х10 пикселей... Что вообще делает функция super??? Нигде не нашел нормального объясннения...
Как сделать вместо белого квадрата картинку????
кстати в flashdevelop
кстати в flashdevelop процесс автоматизирован, (правая кнопка по файлу-картинке - Add to library) поэтому никогда не пользовался,
а файлы сделанные в swfmill грузил только urlloader'ом
у счастливых
у счастливых обладателей Linux нету Flash Develop =( Есть ли ему замена под linux? Сейчас пользуюсь плагином для eclipse.
flashdevelop под линукс
Есть, Virtualbox :) или wine. На их форуме(flashdevelop) есть люди, которые работают над запуском developa в линуксе.
flash develop это все
flash develop это все равно большой костыль под flash. Надо чтото в линукс нативное делать)...
собственно я
собственно я конкретно ступил)
в swfmill у меня создан MovieClip, а не битмап
так нормально:
class Kartinka extends MovieClip { public function new() { super(); }}
class LoadSwfImage {
public function new() {
}
public static function main():Void {
var mc = new Kartinka();
flash.Lib.current.addChild(mc);
}
}
и так нормально для твоего примера
<movie width="256" height="256" frames="60" framerate="12" as3="1" version="9">
<frame>
<library>
<bitmap id="Kartinka" import="test.png" />
</library>
</frame>
</movie>
мини-туториал:
файлы примера
swfmill simple test.xml art.swf
haxe LoadSwfImage.hxml
С функцией
С функцией супер теперь все понятно... Осталось с тестовым примером разобраться) У меня чтото тоже не получается отобразить картинку...
super() это вызов
super() это вызов конструктора (new) родительского класса, в данном случае BitmapData, с параметрами width и height
белый квадрат - это пустой BitmapData 10х10 пикселей, значит haxe не создал класс с именем Kartinka из ресурсов (в art.swf нет такого класса)
haxe импортирует символы из библиотек, подключенных swf-lib, по имени класса
класс с именем ресурса создастся автоматически, если еще не определен - в противном случае есть flash.Lib.attach()
в swfmill имя класса это id:
<movie width="256" height="256" frames="60" framerate="12" as3="1" version="9">
<frame>
<library>
<clip id="Kartinka" import="test.png"/>
</library>
</frame>
</movie>
тестовый пример я, правда, работать не заставил, нужно посмотреть из дома
Отправить комментарий