1

(ActionScript 2 のみ)

私のサイトは、PHP を介して MySQL DB からユーザー要求データをロードする SWF です。コミュニケーションプロセス全体をマスターするのに問題はありません。

ホームページでは、ページのメイン右側にすでに表示されているニュースとともに、左側に、提供される重要なサービスのリマインダーと、サイトにアクセスするときに登録ユーザーが行う必要のある必須アクションを表示したいと考えています。

DB の戻り値: | を含む配列 区切り文字と配列項目の合計。

Flash では、次の関数を使用して配列を取得します。

remindersFct = function () {
          var myReminders = new LoadVars();
          myReminders.identity = "reminders";
          myReminders.onLoad = function(ok) {
                    if (ok) {
                                   _root.reminderFld.html = true;
                                   var myArray:Array = new Array(myReminders.mydata.split("|"));
                                   myArray.length = myReminders.totalItems;
                    }
                    else {
                                   stop();
                    }
          };
          myReminders.sendAndLoad("misc.php",myReminders,'POST');
};
remindersFct();//start the process

私はさまざまなことを知りたい...:

1 - この配列を異なるアイテムに「分解」するにはどうすればよいですか (それらはすべてテキストの文字列です) 2 - 次に、適切な htmlText フィールドにそれらを次々に表示するように SWF に指示するにはどうすればよいですか 3 - どのようにできますか含まれるテキストの長さに基づいて、これらの各アイテムのデュレーションを調整します

ご協力いただきありがとうございます。

4

1 に答える 1

0

さて、あなたがすでにリストした行 var myArray:Array = new Array(myReminders.mydata.split("|")); 文字列を配列に分解します。表示に関しては、 for..in ステートメントを使用することをお勧めします。

for(x in myArray){
    myDynamicTextField.htmlText += (myArray[x] + "<br>");
}

for..in はしばしば逆方向に繰り返されるため、最初に myArray.reverse() を実行することをお勧めします。

持続時間に関しては、それはクラックするのが少し難しいナットです. 上記のコードは、テキストを一度にすべて挿入します — 代わりに、カウンターと、次のテキスト挿入までに残されたフレーム数のタイマーを設定したい場合があります。たとえば、次のようになります。

_root.x = 0;
_root.timer = 5; //frames

セットアップのために、次に onEnterFrame で:

_root.timer--;
if(_root.timer == 0){
     myDynamicTextField.htmlText += (myArray[_root.x] + "<br>");

     if(_root.x >= myArray.length-1){
        delete this.onEnterFrame; //clean up
     } else {
        _root.timer = ... //put whatever value should go here depending on the length of myArray[_root.x]
     }
     _root.x++;
}

うまくいけばうまくいくはずです。幸運を!

于 2013-05-17T01:42:02.533 に答える