2011-11-24 85 views
1

我知道在此錯誤#2025主題中已經詢問了很多問題。Flex - ArgumentError:錯誤#2025:使用添加的SWC文件時,提供的DisplayObject必須是調用者的子代

但是,在我的情況下,它試圖在flex項目中使用.swc文件時發生。

我想通過使用「Add swc」文件添加我的庫項目中的一個項目到另一個flex項目中。 我已成功將其添加到我的新項目中作爲.swc文件。

但是,當我嘗試通過單擊瀏覽器中的應用程序來使用它的新項目時,它會向我顯示此運行時錯誤。以下是我的新項目的主要文件。

NewSample.mxml

<?xml version="1.0" encoding="utf-8"?> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" 
       xmlns:swclib="*" 
       layout="absolute"> 
    <swclib:Main width="100%" height="100%"/> 
</mx:Application> 

堆棧跟蹤:

ArgumentError: Error #2025: The supplied DisplayObject must be a child of the caller. at flash.display::DisplayObjectContainer/getChildIndex() at mx.managers::SystemManager/getChildIndex()[C:\autobuild\3.x\frameworks\projects\framework\src\mx\managers\SystemManager.as:1772] at mx.managers::SystemManager/mouseDownHandler()[C:\autobuild\3.x\frameworks\projects\framework\src\mx\managers\SystemManager.as:3615]

我無法確定是什麼原因造成的錯誤?


編輯:這是.swc庫文件的主應用程序文件。

Main.mxml

<?xml version="1.0" encoding="utf-8"?> 
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" 
        xmlns:parsley="http://www.spicefactory.org/parsley" 
        minWidth="955" minHeight="600" 
        xmlns:custom="components.*" 
        horizontalScrollPolicy="off" 
        layout="vertical" 
        verticalScrollPolicy="off" xmlns:models="models.*" xmlns:views="views.*"> 
     <views:Header width="100%" height="50"/> 
       <mx:HDividedBox id="hdv" width="100%" height="100%"> 
        <views:ABC width="15%" height="100%"/> 
        <views:DEF width="65%" height="100%"/> 
        <views:XYZ width="20%" height="100%"/> 
       </mx:HDividedBox> 

     <parsley:ContextBuilder config="Conf"/> 
    </mx:Application> 
+0

請共享代碼的主類 –

+0

檢查編輯部分... – tomjerry

+0

我認爲你需要使用Loader來加載應用程序。我不知道爲什麼有人會把一個應用程序類放入一個swc中......這沒有任何意義。 –

回答

2

你真的需要ApplicationApplication應該只是上層和主類。 可能的解決方案:

  1. 使用另一個容器(例如Canvas)。
  2. 將Main.mxml應用程序編譯爲swf,然後使用Loader類加載它。

我寧願使用1st變體。

+0

是的,您的偏好即第一個選項效果很好。 +1從我和接受你的答案:)謝謝 – tomjerry

0

我敢打賭,你不檢查,如果(你認爲孩子)對象實際上是把一個if有喜歡的(你認爲父)對象

的孩子:

if(parentObj.getChildren().indexOf(childObj) >= 0) { 
    parentObj.removeChild(childObj); 
} else { 
    //whatever error logging you do goes here 
} 
相關問題