Adobe Flash Builder(flex4):addChild()在此类中不可用.

ufk*_*ufk 9 apache-flex loader addchild flash-builder flex4

我想将swf加载到flex 4应用程序中以便使用它的类.

var ldr:Loader=new Loader();
ldr.load(new URLRequest("file://path/to/fileswf"));
ldr.contentLoaderInfo.addEventListener(Event.INIT, loaded);
function loaded(evt:Event):void { addChild(ldr); }
Run Code Online (Sandbox Code Playgroud)

我收到错误:

错误:此类中没有addChild().相反,如果你有皮肤,请使用addElement()或修改皮肤.

主要/私有的spark.components.supportClasses :: SkinnableComponent/addChild()[E:\ dev\gumbo_beta2\frameworks\projects\spark\src\spark\components\supportClasses\SkinnableComponent.as:966]:init/loaded( )[C:\ Documents and Settings\ufk\Adob​​e Flash Builder Beta 2\xpogames-toolkit-test\src\main.mxml:22]

如果我addChild()改为addElement(),我收到以下编译错误:

1067:flash.display类型值的隐式强制:对不相关类型的加载器mx.core:IVisualElement.main.mxml path/dir line 22 Flex问题

有任何想法如何解决这个问题?

小智 24

创建另一个容器以将displayObject放入:

// container ( IVisualElement ) for DisplayObjects
var container:UIComponent = new UIComponent();
addElement( container );

// displayObject goes to container
var displayO:Sprite = new Sprite();
container.addChild( displayO );
Run Code Online (Sandbox Code Playgroud)


ufk*_*ufk 2

在flash builder 4完整版中,没有任何this.rawChildren。

解决该问题的最佳方法是将每个所需的类转换为 Flex 组件并在 Flex 应用程序中使用它:

  1. 下载并安装 Flex 组件套件 http://www.adobe.com/cfusion/entitlement/index.cfm?e=flex_skins

  2. 创建影片剪辑

  3. 转换为弹性组件

  4. 在该类中添加相关函数

附加到即将转换为 Flex 组件的影片剪辑的类的骨架:

package {
import mx.flash.UIMovieClip;
import flash.text.TextField;
import flash.events.Event;
import flash.events.MouseEvent;
public dynamic class challenge_screen extends UIMovieClip {

    public function challenge_screen() {
        super();
    }
}
} 
Run Code Online (Sandbox Code Playgroud)