2013-07-03 49 views
0

我正在加載外部SWF文件,並在我的Flex4.6中使用ApplicationDomain.getdefination(「Slide1」)使用AIR 3.2 for iOS來獲取嵌入內容。ApplicationDomain.getDefinition在Release Release for iOS中不起作用

當我在調試模式(快速)下編譯時它工作正常,但在發佈模式(標準)下編譯時在iPad上給出了Ref Error 1065(請參閱下面的錯誤行*)。

任何幫助/建議表示讚賞。

在我的動作類的示例代碼如下所示: -

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); 
     } 
    } 
} 

回答

2

有問題瓦特/關於運行時代碼的iOS應用商店的協議;所以這是行不通的。

Adob​​e有一個sort of work-around,使這項工作。它是在AIR 3.6中引入的;所以你將不得不升級你的AIR SDK。

+0

感謝您的回覆,但它不適用於AIR 3.6,在同一行上給我相同的錯誤:錯誤#1065. – birpal

+0

我沒有遇到過這個問題;所以不能評論更多。 – JeffryHouser

相關問題