0

XMLを「データベース」として使用して、画像の追加と削除を簡単にすることで、コードを改善しようとしています。

私がやっていた方法の前に、画像をインポートしてから、アクションスクリプト用にエクスポートされたムービークリップに追加し、ボタンをクリックすると、そのムービークリップを見つけてステージに追加して使用しました。

私はこれを新しい XML の方法にできる限り類似させようとしています。

XML をインポートしてイメージを見つけ、これを使用して準備できます。

    function importXML(){
        var loadXML:URLLoader = new URLLoader();
        loadXML.load(new URLRequest("../xml/images.xml"));
        loadXML.addEventListener(Event.COMPLETE, processXML);
    }


    function processXML(e:Event):void{
        imageXML = new XML(e.target.data);
        var image   = imageXML.image.(@name=="image1").image;
        trace(image);
        importImage(image);
    }


   function importImage(imageName:String) {
        var loadIMG = new Loader();
        var url     = "../images/last_steps/"+imageName;
        var url_req:URLRequest = new URLRequest(url);
        loadIMG.load(url_req);
        loadIMG.name = "image1";

    }

クリックで実行される関数が機能するように、名前を付けてみました。

    function myButtonClick(ev:MouseEvent):void
    {
        addImage("image1");
    }

    function addImage(image:String)
    {
        var imageName = image;
        var imageClass:Class = getDefinitionByName(imageName) as Class;

         addChild(imageClass);
    }

最後の関数は、movieClip に手動で追加したときに機能しますが、今は機能しません。これも試してみました。

    function addImage(image:String)
    {
        var imageName = image;
        // var imageClass:Class = getDefinitionByName(imageName) as Class;

        addChild(imageName);
    }

これもうまくいきません。

私の質問を要約すると、ボタンをクリックしたときに XML 経由でインポートされた画像を名前にリンクするにはどうすればよいですか?

4

1 に答える 1

0

これを行う最善の方法は、簡単に onComplete 関数() でイベント リスナーをボタン インスタンスに追加することです。

于 2013-04-07T11:28:29.017 に答える