0

Flash CS5 を使用する ActionScript 3.0 を使用して、外部 SWF をステージにロードおよびアンロードする ComboBox を作成しようとしています。

現在、コンボ ボックスには 2 つのリスト項目があります: Home と About です。ComboBox から [ホーム] または [バージョン情報] オプションを選択すると、選択時に [ホーム] と [SWF について] の両方が一度に表示されます。

すべてではなく、選択したときにのみ 1 つの SWF を表示したい。

menuList.addItem({label:"Choose"});
menuList.addItem({label:"Home",path:"home_load.swf"});
menuList.addItem({label:"About",path:"about.swf"});

menuList.addEventListener(Event.CHANGE, Home);
menuList.addEventListener(Event.CHANGE, About);

var loader:Loader = new Loader();
loader.unloadAndStop();


function Home(e:Event):void
{
    if (e.currentTarget.selectedItem.path)
    {
        var loader:Loader = new Loader();
        //loader.unloadAndStop();
        loader.load(new URLRequest("home_load.swf"));

        addChild(loader);
        //loader.unloadAndStop();
        loader.x = 0;
        loader.y = 190;
    }
}

function About(e:Event):void
{
    if (e.currentTarget.selectedItem.path)
    {
        //loader.unloadAndStop();
        var loader:Loader = new Loader();
        loader.load(new URLRequest("about.swf"));

        addChild(loader);
        //loader.unloadAndStop();
        loader.x = 0;
        loader.y = 190;
    }
}
4

1 に答える 1

0

swf ファイルのロードが完了した後、addChild を実行する必要がある場合があります。

//These listeners detect when the file has finished loading, and if the
//correct file is loaded.
swfLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, finishLoading);
swfLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, errorHandler);

//The load method then loads the SWF file into the loader object.
swfLoader.load(my_url);

//This function adds the external SWF to the stage.
function finishLoading(loadEvent:Event) {
addChild(loadEvent.currentTarget.content);
}

//This function displays a message if the file is not found.
function errorHandler(errorEvent:Event):void {
trace("file missing");
}
于 2013-02-01T03:40:56.633 に答える