我正在加载一个外部SWF文件,并在我的Flex4.6中使用ApplicationDomain.getdefination("Slide1"),使用AIR3.2for iOS来获取其中的嵌入内容。
当我在调试模式(快速)下编译时,它工作得很好,但在发布模式(标准)下编译时,在iPad上给出了引用错误1065 (参见下面的错误行*)。
如有任何帮助/建议,我们不胜感激。
我的actionscript类中的示例代码如下所示:
var request:URLRequest;
request = new URLRequest(strSwfPath);
var rslLoader:Loader = new Loader();
var appDom:ApplicationDomain = new ApplicationDomain( ApplicationDomain.currentDomain );
var loaderContext:LoaderContext = new LoaderContext(false,appDom);
loaderContext.allowLoadBytesCodeExecution = true;
rslLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadSwfCompleteHandler, false, 0, true);
rslLoader.load(request, loaderContext);
//--
private var loadedAppDomain:ApplicationDomain;
public var embedClass:Class;
//--
private function loadSwfCompleteHandler(event:Event):void
{
loadedAppDomain = rslLoader.contentLoaderInfo.applicationDomain;
embedClass = loadedAppDomain.getDefinition(slideName) as Class; // >>>>>>>>>>>>>>>>>>>>>>> *Error Line.
}
//--------------------- The code inside my external SWF looks like:-
package
{
import flash.display.Sprite;
import flashx.textLayout.compose.ISWFContext;
public class Slide1 extends Sprite implements ISWFContext {
[Embed("slide1/sldBg1.png", mimeType="image/png")]
public static const bg:Class;
public function callInContext(fn:Function, thisArg:Object, argsArray:Array, returns:Boolean=true):*{
if (returns)
return fn.apply(thisArg, argsArray);
fn.apply(thisArg, argsArray);
}
}
}发布于 2013-07-04 00:22:33
关于运行时代码,iOS应用商店协议存在一些问题;因此这不会起作用。
Adobe有一个sort of work-around可以实现这一点。它是在AIR 3.6中引入的;所以你必须升级你的AIR SDK。
https://stackoverflow.com/questions/17449653
复制相似问题