我可以做两件事。加载外部 swf,并更改对象的颜色。当我把这两件事放在一起时,它不起作用。 如何更改加载的 swf 的颜色? 我想访问加载的 swf 文件中的实例名称。
我被告知的内容
我必须将其打包并设置类路径。现在有简单的方法吗?
alt text http://www.ashcraftband.com/myspace/videodnd/ball.jpg
球.swf
"white ball on the stage named blueball"
load.fla
//load ball.swf
var bgLoader:Loader = new Loader();
bg_mc.addChild(bgLoader);
var bgURL:URLRequest = new URLRequest("ball.swf");
bgLoader.load(bgURL);
//change color of ball to blue "code works in ball.swf"
var myColor:ColorTransform = blueball.transform.colorTransform;
myColor.color = 0x066ccf;
blueball.transform.colorTransform = myColor;
错误#1120
访问未定义的属性
注意
swf 文件都是actionscript-3。我已经尝试过发布和安全设置。
实验“了解在外部 swf 文件中使用符号”
最佳答案
您缺少“root”,加载 swf 后,您可以使用 root 到达时间线范围。考虑以下因素:
var bgLoader:Loader = new Loader();
bg_mc.addChild(bgLoader);
var bgURL:URLRequest = new URLRequest("ball.swf");
bgLoader.load(bgURL);
bgLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaded);
function onLoaded(event:Event):void
{
// use root to reach the timeline scope of the loaded swf
var loadedBlueball:MovieClip = event.target.content.root.blueball;
//change color of ball to blue "code works in ball.swf"
var myColor:ColorTransform = loadedBlueball.transform.colorTransform;
myColor.color = 0x066ccf;
loadedBlueball.transform.colorTransform = myColor;
// just adding the ball to stage, you might want to add all swf
addChild(loadedBlueball);
}
“在 ActionScript 3 中,根属性指的是已加载 SWF 的主时间线(而不是加载其他 SWF 的 SWF 的时间线)。” 来自 http://www.adobe.com/devnet/actionscript/cookbook/timeline_root.html
关于flash - "external"swf AS3 中的访问符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2313317/