0

xmlファイルからデータをロードし、それらを配列にロードして、これらの配列からの単語を動的テキストフィールドの異なるフレームに表示しようとしています。したがって、たとえば、WordArray[0]はDynTextテキストフィールドの2つのフレームに表示されます。このプレゼンテーションに続いて、WordArray [1]が同じテキストフィールドの4つのフレームに表示され、次にKeyWordArray[0]が同じテキストフィールドの1つのフレームに表示されます。

これが私がこれまでに持っているコードです:

var xmlLoader:URLLoader = new URLLoader();
var xmlData:XML = new XML();
xmlLoader.addEventListener(Event.COMPLETE, LoadXML);
xmlLoader.load(new URLRequest("file2.xml"));

function LoadXML(e:Event):void {
xmlData = new XML(e.target.data);
ParsePass(xmlData);
}

var WordArray:Array = new Array();
var KeyWordArray:Array = new Array();

function ParsePass(passInput:XML):void {
var WordAll:XMLList = passInput.Pass.Word.text();
var PrimeAll:XMLList = passInput.Pass.Keyword.text();

for (var i in WordAll) {
    WordArray.push(WordAll[i]);
}
for (var p in PrimeAll) {
    KeyWordArray.push(PrimeAll[p]);
}

}

xmlデータをロードして配列に配置し、次を使用して動的テキストフィールドの最初のフレームにWordArray[0]を表示できます。

DynText.text = WordArray[0];

しかし、他のフレームではありません。ParsePass関数内で関数を呼び出そうとしましたが、機能しないようです。これが基本的な質問であるならば、すみません。AS3は初めてです。しかし、私はWebを検索しましたが、私の質問に関連する答えは見つかりませんでした。ですから、どんな助けでも大歓迎です。

4

1 に答える 1

0

XML の解析については、こちらを参照してください: XML の基本

フレームにさまざまなデータを追加するには、addFrameScript();を使用してみてください。

特定のフレームにコードを追加して、そのフレームにあるコンテナーにデータをロードできます。または、すべてのフレームで同じコンテナーを使用し、フレーム番号に応じてデータを動的にロードする別の解決策もあります。

編集:

MyMC.addEventListener(Event.ENTER_FRAME, OnEnterFrameHandler);
function OnEnterFrameHandler(e:Event):void
{
   switch(e.target.currentFrame)
   {
       case 1: TextBox.text = WordArray[0];
               break;
       case 3: TextBox.text = WordArray[1];
               break;
       case 5: TextBox.text = WordArray[2];
               break;
   }
}

また、Flash フレームの列挙は 1 から始まることに注意してください。stop() メソッドを使用して、必要なフレームで MovieClip を停止してください。

于 2012-05-25T17:36:01.383 に答える