【发布时间】:2012-03-10 18:33:44
【问题描述】:
我有 2 个 swf 文件。一个是加载并加载一个外部加载的 swf 到其中。
这是第一个加载的 swf 中的代码:#1
var logo:Loader = new Loader();
logo.load(new URLRequest("images/Logo.png"));
logo.contentLoaderInfo.addEventListener(Event.COMPLETE, LoadLogo);
function LoadLogo(e:Event):void
{
addChild(logo);
}
/// The SWF I AM LOADING
var Beau:Loader = new Loader();
Beau.load(new URLRequest("Beau.swf"));
Beau.contentLoaderInfo.addEventListener(Event.COMPLETE, LoadBeau);
function LoadBeau(e:Event)
{
addChild(Beau);
}
现在这里是加载 BEAU SWF 的代码:#2
import flash.display.MovieClip;
bird.addEventListener(MouseEvent.CLICK, fl_MouseClickHandler);
function fl_MouseClickHandler(event:MouseEvent):void
{
//// I WANT TO BE ABLE TO ADD CODE TO CONTROL MOVIECLIPS
//// AND CHILDREN form this externally loaded swf. How do
//// I do that? Below code does not work.
var logo:MovieClip;
var ControlLogo:MovieClip = MovieClip(logo.content);
ControlLogo.alpha = .3;
}
编辑
好的,您的代码和教程很棒。当我从外部 URL 加载剪辑时,我现在遇到了主要的 SANDBOX 问题。我还在使用 FLASH CS5.5 为 ANDROID 编码。它不允许我使用 Security.allowDomain("*");
底线是新加载的 SWF 在没有权限的情况下无法访问父级,但我不知道如何授予它权限....使用 AIR/ANDROID 播放器。
【问题讨论】:
-
你想在
fl_MouseClickHandler()里面做什么?logo来自哪里?fl_MouseClickHandler()是否被调用(尝试trace())。 -
您在两个 SWF 中都使用了 allowDomain 吗?如果有帮助,推荐阅读:adobe.com/devnet/articles/crossdomain_policy_file_spec.html
-
我两种方式都试过了。它不起作用。在 Android 上通过 AIR 加载时,它不允许 allowDomain。不知道如何解决这个问题。我可能需要开始第二个帖子并更具体。
标签: actionscript-3 flash external root stage