Что такое эквивалент AS3 для MovieClip.CreateEmptyMovieClip? - PullRequest
1 голос
/ 02 сентября 2010

У меня есть более старый код Haxe в стиле AS2, в котором flash.Lib.Current.CreateEmptyMovieClip() используется для создания слайд-шоу образов на основе дисков.Он создает новый клип для удерживания каждого изображения и просто затухает каждое изображение с альфа-уровнями.

Компиляция с -swf -swf-version 8 создает файл SWF, и это работает в браузере.* Однако я нахожусь в процессе преобразования этого значения в -swf9 и обнаружил, что MovieClip больше не имеет этого метода.

Как загрузить серию изображений с помощью Haxe (AS3-стиль)?

Код того, чего он стоит, выглядит следующим образом:

static function main() {
  mc = flash.Lib.current;
  var clip : MovieClip;

  clip = mc.createEmptyMovieClip ("clip_000", mc.getNextHighestDepth());
  clip.loadMovie ("demo_img000.jpg");

  : : :

1 Ответ

7 голосов
/ 02 сентября 2010

Вы можете просто создать новый экранный объект без привязки его к клипу в библиотеке следующим образом:

var sprite:Sprite = new Sprite() // -- creates a sprite
var clip:MovieClip = new MovieClip() // -- creates a movie clip

Затем вы можете добавить его к другому экранному объекту, используя метод addChild():

myOtherClip.addChild( sprite )

Приведенная выше строка добавит новый клип в верхнюю часть списка отображения, как и при использовании getNextHighestDepth().

Если вы хотите добавить клип глубиной между двумя другими клипами, вы можете использовать:

myOtherClip.addChildAt( movieClip, 2 ); // -- adds a clip at 2 levels up from 0

Что касается загрузки изображения, loadMovie не существует в AS3. Вам нужно использовать объекты Loader и URLRequest, например:

var loader:Loader = new Loader();
var request:URLRequest = new URLRequest( 'path_to_my_image.jpg' );
loader.addEventListener( Event.COMPLETE, onLoadComplete );
loader.load( request );

function onLoadComplete( event:Event ):void
{
     if( loader.content ){
         clip.addChild( loader.content )
     }
}
...