0


0

イベントリスナーを追加せずにフラッシュas3でコードを処理する方法(フラッシュが検出するとすぐに)

私はPHPからいくつかのデータをフラッシュしてフラッシュし、ダイナミックテキストフィールドに印刷しようとしています。 これはばかげた質問かもしれませんが、コードを処理するためにフラッシュを取得する方法がうまくいかないようですtext_field.text = data.return_msg;イベントリスナーは必要ありません。

だから、基本的にフラッシュがそれを発見したらすぐにコードを処理したい。

これは私が現時点で持っているものです:

var variables:URLVariables = new URLVariables("get_blog_info.php");


// Build the varLoader variable
var varLoader:URLLoader = new URLLoader;
varLoader.dataFormat = URLLoaderDataFormat.VARIABLES;


trace(varLoader);


var data:URLVariables = new URLVariables(event.target.data);
title_txt.text = data.return_msg;
}

私はこのエラーを受け取ります:

「1120:未定義のプロパティイベントへのアクセス。」

基本的な質問を知っていますが、私はフラッシュが初めてなので、どんな助けでも大歓迎です。

ありがとう

3 Answer


2


WebリクエストはFlashでは非同期のみです。 ロードが完了したときに通知されるイベントリスナーを追加する以外に選択肢はなく、その時点でデータにアクセスできます。


1


documentationは、探していることを行う唯一の方法を示しています。 テキストを表示するには、リクエストから情報が返されるまで待つ必要があります。

// notice: you want to have a request which points to the URL, not the variables.
var urlRequest:URLRequest = new URLRequest("get_blog_info.php");
var urlLoader:URLLoader = new URLLoader();
// it looks like you just want a string returned.
urlLoader.dataFormat = URLLoaderDataFormat.TEXT;
urlLoader.addEventListener(Event.COMPLETE, urlLoader_complete);
urlLoader.load(urlRequest);

function urlLoader_complete(evt:Event):void {
    title_txt.text = urlLoader.data;
}


0


PHPから応答を受信したときを検出するには、ローダーを実際にリッスンする必要があります。 そうしてはじめて、イベントオブジェクトとデータプロパティが設定されます。 あなたはこのようなことをするべきです:

var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE,onLoaded);
loader.load(new URLRequest("get_blog_info.php"));

function onLoaded(evt:Event):void
{
    loader.removeEventListener(Event.COMPLETE,onLoaded); // recomended, to prevent memory leaks. if you will not be using this loader again.
    title_txt.text = evt.target.data;
}

「URLVariables」の使用を意図的に誤解していると思われるため、意図的に使用を無視しました。 PHPスクリプトに送信される変数である名前と値のペアの文字列を使用して、URLVariablesのインスタンスを作成します。 リクエストに変数を使用していないようですので、無視しました