2011-09-10 6 views
1

私はOOP AS 3.0を初めて使っています。オブジェクト指向AS 3.0

私はそこsortXML機能では、loadTheXML機能を持っており、そこに私はMain.asMain.as

で使用するアレイpicturePathListは私が持っているLoadTheXMLクラスの二つのファイルMain.asLoadTheXML.as

を持っていますloadTheXML関数を起動するコード:

var loadedXML:LoadTheXML = new LoadTheXML(urlVar); 

so .. Main.asで私は次のように書いています:

  var rand:Number = Math.round(Math.random() * (a - 1)); 
      var mainLoader:Loader = new Loader(); 
      var mainRequest:URLRequest = new URLRequest(picturePathList[rand]); 
      mainLoader.load(mainRequest); 
      mainLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, mainLoaded); 

      function mainLoaded(e:Event):void { 
       mainPicPlacementX = (stage.stageWidth/2) - (mainLoader.width/2); 

      so on and so on.... 
      } 

LoadTheXMLクラスからpicturePathList配列を呼び出す方法を教えてください。

ありがとうございました!

ここで私はファイルを置くだろう - 私は、私はこれを推測し、上記のコードはMainc.asに移動することにしたい何をすべきか、どのように... The Files

取得していないので、参照してください、とにかく私はそれがどのようになっているのか見たいと思います。あなたがチュートリアルを見つけたら、私もそれを見てみたいです..ありがとう!

答えて

1

一般にAS3は非同期です。つまり、2番目のステートメントに進む前に最初のステートメントを完了するのを待つべきではありません。

したがって、タスクが完了したかどうかをチェックするイベントオブジェクトをリッスンする必要があります。このEventDispatcherオブジェクトを取得できます。

したがって、sortXMLのイベントオブジェクトをディスパッチする必要があります。

dispatchEvent (new Event (Event.COMPLETE)); 

およびMain.as

private function init():void 
{ 
    loadedXML = new LoadTheXML(urlVar); 
    loadedXML.addEventListener (Event.COMPLETE, handleXMLLoaded); 
} 

private function handleXMLLoaded (e:Event):void 
{ 
    var rand:Number = Math.round(Math.random() * (a - 1)); 
    var mainLoader:Loader = new Loader(); 
    var mainRequest:URLRequest = new URLRequest(loadedXML.picturePathList[rand]); 
    mainLoader.load(mainRequest); 
    ..... 
    ..... 
} 
+0

あなたは、ファイルを見てみることができ...感謝を! – mrGott

+1

シンプル。 1. 'xml'ファイルを' loadTheXML'クラスにロードし、 'COMPLETE'ハンドラの中で値を配列に格納してディスパッチします。 2.メインクラス 'loadedXML.picturePathList [rand]'にあります。それで全部です。配列はパブリック変数でなければなりません。 – Benny

+0

Benny Geo、変更をお願いします。私はどこかに間違っていて、どこから分かるのか分からないからです...もしあなたがちょうど変更を行い、ファイルをアップロードすれば、大いに感謝します。とにかくあなたのサポートのおかげで! – mrGott

2

ゲッターメソッドを介して公にづけし、あなたのLoadToXMLオブジェクトのプロパティpicturePathListを行います

public class LoadTheXML 
{ 
    private var _picturePathList:Array; 

    public function get picturePathList():Array 
    { 
     return _picturePathList; 

    }// end function 

    // ... 

}// end class 
関連する問題