1

我有一些旧的 AS2 风格的 Haxe 代码,用于flash.Lib.Current.CreateEmptyMovieClip()创建基于磁盘的图像的幻灯片。它创建一个新剪辑来保存每个图像,并简单地使用 Alpha 级别淡入和淡出每个图像。

编译它-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");

  : : :
4

1 回答 1

7

您可以创建一个新的显示对象,而无需将其链接到库中的剪辑,如下所示:

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

至于加载图像,在 AS3 中不存在 loadMovie。您需要像这样使用 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 )
     }
}
于 2010-09-02T14:29:47.467 回答