質問

クラスを使用するために、flex 4 アプリケーションに swf をロードしたいと考えています。

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 の問題

この問題を解決する方法はありますか?

役に立ちましたか?

解決 2

Flash Builder 4 フルバージョンでは、this.rawChildren はありません。

この問題を解決する最善のアプローチは、必要な各クラスを flex コンポーネントに変換し、それを flex アプリケーションで使用することです。

  1. フレックスコンポーネントキットをダウンロードしてインストールしますhttp://www.adobe.com/cfusion/entitlement/index.cfm?e=flex_skins

  2. ムービークリップを作成する

  3. フレックスコンポーネントに変換

  4. 関連する関数をこのクラスに追加します

フレックス コンポーネントに変換されるムービークリップにアタッチされているクラスのスケルトン:

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();
    }
}
} 

他のヒント

でDisplayObjectを配置するために、別のコンテナを作成します:

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

// displayObject goes to container
var displayO:Sprite = new Sprite();
container.addChild( displayO );
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);
}

これを試してみてください。それは動作します。

this.rawChildren.addChild(LDR) 動作するはずです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top