pax*_*blo 1 flash actionscript-2 haxe actionscript-3
我有一些较旧的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");
: : :
Run Code Online (Sandbox Code Playgroud)
您可以创建一个新的显示对象,无需将其链接到库中的剪辑,如下所示:
var sprite:Sprite = new Sprite() // -- creates a sprite
var clip:MovieClip = new MovieClip() // -- creates a movie clip
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用以下addChild()方法将其添加到另一个显示对象:
myOtherClip.addChild( sprite )
Run Code Online (Sandbox Code Playgroud)
上面的行会将新剪辑添加到显示列表的顶部,就像使用一样getNextHighestDepth().
如果要在两个其他剪辑之间添加剪辑,可以使用:
myOtherClip.addChildAt( movieClip, 2 ); // -- adds a clip at 2 levels up from 0
Run Code Online (Sandbox Code Playgroud)
至于加载图像,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 )
}
}
Run Code Online (Sandbox Code Playgroud)