我想将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类型值的隐式强制:对不相关类型的加载器mx.core:IVisualElement。 main.mxml path / dir line 22 Flex问题
有任何想法如何解决此问题?
答案 0 :(得分: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 );
答案 1 :(得分:2)
在Flash builder 4完整版中,没有任何this.rawChildren。
解决问题的最佳方法是将每个必需的类转换为flex组件并在Flex应用程序中使用它:
下载并安装flex组件工具包 http://www.adobe.com/cfusion/entitlement/index.cfm?e=flex_skins
制作影片剪辑
转换为flex组件
将相关功能添加到此课程
附加到即将转换为flex组件的movieclip的类的骨架:
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();
}
}
}
答案 2 :(得分: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);
}
试试这个。它会起作用
答案 3 :(得分:0)
this.rawChildren.addChild(ldr) 应该工作