9

我想将 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); }

我收到错误:

错误:addChild() 在此类中不可用。相反,使用 addElement() 或修改皮肤(如果有的话)。
在 spark.components.supportClasses::SkinnableComponent/addChild()[E:\dev\gumbo_beta2\frameworks\projects\spark\src\spark\components\supportClasses\SkinnableComponent.as:966]
在 main/private:init/loaded( )[C:\Documents and Settings\ufk\Adobe Flash Builder Beta 2\xpogames-toolkit-test\src\main.mxml:22]

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

1067:将 flash.display:Loader 类型的值隐式强制转换为不相关的类型 mx.core:IVisualElement。main.mxml 路径/目录第 22 行 Flex 问题

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

4

4 回答 4

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 );
于 2010-06-08T09:26:05.840 回答
2

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

解决该问题的最佳方法是将每个必需的类转换为一个弹性组件,并在您的弹性应用程序上使用它:

  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();
    }
}
} 
于 2010-05-31T14:05:51.310 回答
1
private var _loader:SWFLoader = new SWFLoader();
private var _uicomponent:UIComponent = new UIComponent();
private function swfLoaded(event:Event):void 
{
Alert.show("inside swf Loaded");
var content:DisplayObject =_loader.content;
_uicomponent.addChild(content);
} 
public function loadSWF () : void 
{   

_loader.addEventListener(Event.INIT, swfLoaded);
_loader.load("http://intelliveysoft.com:5080/myelearn/Admin.swf"); 
addElement(_uicomponent);
}

尝试这个。它会工作

于 2010-12-07T07:17:58.973 回答
0

this.rawChildren.addChild( ldr ) 应该可以工作

于 2010-01-26T05:25:58.460 回答