我现在一直在为WEEKS解决这个问题而无法解决它。我有一个flash AIR应用程序(创意云,AIR 3.8)非常简单:只需点击一个开始按钮即可加载外部SWF电影。它在测试/ PC中运行FINE,但是当我发布到设备时,外部swfs不会加载。
HEre是主时间轴上调用外部swfs的代码:
//start button
start_button_TRI_coelophysis.addEventListener(MouseEvent.CLICK,
fl_ClickToLoadUnloadSWF_01_3,false,0,true);
import fl.display.ProLoader;
import flash.events.Event;
var fl_ProLoader_01:ProLoader;
var fl_ToLoad_01:Boolean = true;
function fl_ClickToLoadUnloadSWF_01_3(event:MouseEvent):void
{
if(fl_ToLoad_01)
{
fl_ProLoader_01 = new ProLoader();
fl_ProLoader_01.load(new URLRequest("dinofilms/triassic_coelophysis.swf"));
fl_ProLoader_01.contentLoaderInfo.addEventListener(Event.COMPLETE,onComplete_01)
addChild(fl_ProLoader_01);
fl_ProLoader_01.x = 0;
fl_ProLoader_01.y = 144;
}
else
{
if(fl_ProLoader_01!=null) {
removeChild(fl_ProLoader_01);
fl_ProLoader_01.unloadAndStop();
fl_ProLoader_01 = null;
}
}
fl_ToLoad_01 = !fl_ToLoad_01;
}
function onComplete_01(e:Event):void {
e.currentTarget.content.addEventListener(Event.ENTER_FRAME,OEF_01);
}
function OEF_01(e:Event):void {
if(e.currentTarget.currentFrame==e.currentTarget.totalFrames) {
e.currentTarget.stop();
e.currentTarget.removeEventListener(Event.ENTER_FRAME,OEF_01);
removeChild(fl_ProLoader_01);
fl_ProLoader_01.unloadAndStop();
fl_ProLoader_01 = null;
}
}
我在30个不同的帧上调用了30种不同的电影,这就是为什么我使用“proLoader_01”这样的标签,所以我不复制它们。所有外部swfs当然也列在包含的文件中。
答案 0 :(得分:2)
您需要更改
fl_ProLoader_01.load(new URLRequest("dinofilms/triassic_coelophysis.swf"));
到
fl_ProLoader_01.load(new URLRequest("dinofilms/triassic_coelophysis.swf"), new LoaderContext(false, ApplicationDomain.currentDomain));
在iOS下,所有SWF必须加载到当前应用程序域ApplicationDomain.currentDomain
内。