2010-10-01 141 views
0

我三个外部SWF文件加载到我的flash动画,下面的代码:的Flash/AS3:加载外部SWF *动画*

import flash.display.* 

var screens:Array = new Array(
    'screens/left.swf', 
    'screens/center.swf', 
    'screens/right.swf' 
); 

var loaders:Array = new Array(); 

function complete_listener(event:Event):void { 
    event.target.content.width = 341; 
    event.target.content.scaleY = event.target.content.scaleX; 
} 

for (var i=0; i<screens.length; i++) { 
    loaders[i] = new Loader(); 
    loaders[i].contentLoaderInfo.addEventListener(Event.COMPLETE, complete_listener); 
    var url:URLRequest = new URLRequest(screens[i]); 
    loaders[i].load(url); 
    loaders[i].x = 341 * i; 
    loaders[i].y = 0; 
    addChild(loaders[i]); 
} 

一切正常,只是我的三个虚拟瑞士法郎的罚款,但是当我尝试加载使用某种动画(例如补间动画)的swf文件,swf不再显示......是否有解决方法?谢谢!

+0

难道这些动画直接嵌入在加载的主权财富基金或者他们又将从其他SWF加载? – Amarghosh 2010-10-01 12:07:24

+0

它们直接嵌入在加载的SWF中。其实你可以看到第一帧(我猜)每隔几秒闪一下,真的很奇怪...... – 2010-10-01 12:09:50

+0

可能这些动画可能会导致加载的SWF崩溃,这是因为某些原因,比如从构造函数中访问'stage'属性(或者在它们实际上添加到舞台) - 你有机会获得这些动画的代码吗?确保你正在测试一个Flash播放器的调试版本 - 这样你就会知道发生了什么样的错误/异常 – Amarghosh 2010-10-01 12:19:54

回答

0

嗯,我不能正确理解你的问题..但我会建议你一个人认为把stop()放在你要加载的所有三个swf上。然后当他们被加载时,你可以开始你的动画。

function complete_listener(event:Event):void 
{ 
    event.target.content.width = 341; 
    event.target.content.scaleY = event.target.content.scaleX; 
    var myLoadedSWF:MovieClip =event.target.content as MovieClip; 
    myLoadedSWF.play(); 
} 

尝试......