1

我知道这里已经就这个错误 #2025 主题提出了很多问题。

但是,就我而言,它是在尝试.swc在 flex 项目中使用文件时发生的。

我正在尝试通过添加使用“ Add swc”文件将我的一个库项目用于另一个 flex 项目。我已经成功地将它作为.swc文件添加到我的新项目中。

但是,当我尝试通过单击浏览器中的应用程序来使用它的新项目时,它显示了这个运行时错误。下面是我的新项目的主文件。

新样本.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:错误 #2025:提供的 DisplayObject 必须是调用者的子对象。在 flash.display::DisplayObjectContainer/getChildIndex() 在 mx.managers::SystemManager/getChildIndex()[C:\autobuild\3.x\frameworks\projects\framework\src\mx\managers\SystemManager.as:1772]在 mx.managers::SystemManager/mouseDownHandler()[C:\autobuild\3.x\frameworks\projects\framework\src\mx\managers\SystemManager.as:3615]

我无法确定导致错误的原因?


编辑:这是.swc库文件的主要应用程序文件。

主.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>
4

2 回答 2

2

你真的需要Application吗?Application应该只有上层和主类。可能的解决方案:

  1. 使用另一个容器(例如Canvas)。
  2. 将 Main.mxml 应用程序编译成 swf,然后使用Loader类加载它。

我更喜欢使用第一种变体。

于 2011-11-24T15:49:02.770 回答
0

我敢打赌,您没有检查(您认为是子)对象是否实际上是(您认为是父)对象的子对象

放一个if像:

if(parentObj.getChildren().indexOf(childObj) >= 0) {
    parentObj.removeChild(childObj);
} else {
    //whatever error logging you do goes here
}
于 2011-11-24T15:57:14.717 回答