2010-09-02 94 views
1

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

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

    : : : 

回答

7

您可以直接创建一个新的显示对象W/O它在这样的库链接到剪辑:

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

myOtherClip.addChild(sprite) 

然后可以通过使用addChild()方法将其添加到另一个显示对象上面的行会将新剪辑添加到显示列表的顶部,就像使用getNextHighestDepth()一样。

如果你想添加剪辑其他两个片段之间的深度,你可以使用:

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

至于加载图像,使用loadMovie在AS3中不存在。您需要使用像这样的加载程序和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) 
    } 
} 
+1

这是AS3中*更好的东西之一。 – Herms 2010-09-02 14:44:23

+0

我会毫无疑问地接受这个答案,因为它似乎工作正常(至少是初步的)。有一件事我没有得到 - 如何指定精灵/剪辑在主剪辑上的位置?换句话说,'x = mc.createTextField(name,mc.getHighestDepth(),0,300,400,20)'指定字段的位置及其大小。你如何用'x = new TextField()'来做到这一点? – paxdiablo 2010-09-02 15:57:56

+0

clip.x = 300; clip.y = 400; parentClip.addChild(clip) – JeremyFromEarth 2010-09-02 17:23:05

相关问题