トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     XML.onLoad()内において親オブジェクトを参照する方法
投稿するにはまず登録を

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
mitsumoto
Åê¹ÆNo.19129
投稿日時: 2005-7-28 22:48
新米
居住地: 大阪府
投稿: 16
使用環境:
XML.onLoad()内において親オブジェクトを参照する方法
たびたびお世話になります。みつもとじょうじ改め「みつもと」です。(長いので)
今回はXMLクラスのonLoadイベントハンドラ内において親?オブジェクトを参照する方法についての質問です。

少し例が煩雑かもしれませんがご容赦のほどを。
サーバーに郵便番号を送信して、住所を取得するようなアプリケーションを想定してください。

まず、サーバーとXML通信をするMovieClipがあります。(zip_mc:MovieClip)
zip_mcは自身の中に以下のプロパティを持っています。
・zip_str:String      //  送信する郵便番号
・addr_txt:TextField  //  サーバーから取得した住所を表示するテキストフィールド

また、メソッドは以下ものを持っています。
・getAddress(res_xml:XML):String     //  渡されたXMLをパースして住所データを抽出する
・showAddress(addr_str:String):Void  //  渡された文字列をaddr_txtテキストフィールドに表示する


まずは適当に郵便番号をセットしてリクエストを送信してみます。
zip_mc内のスクリプト
this.zip_str = "5300001";  //  大阪市北区です
var send_xml = new XML();  //  リクエスト用
var res_xml = new XML();   //  レスポンス用
//  (XMLノード構築)
send_xml.sendAndLoad(url, res_xml);  //  リクエストを送信


ここまでは特に問題ありませんが、問題はサーバーからのレスポンス(住所データ)を受信する時です。
色々なマニュアルやHOWTO本で紹介されている常套手段を使って処理すると
res_xml.onLoad = function(success:Boolean) {
    //  (レスポンスXMLをパースする処理、住所データを表示する処理)
};

となりますが、ここでつまづいてしまいます。
「住所を表示する」のはzip_mcの仕事なので、
this.showAddress(address);

と記述したいところですが、ここでthisが指すオブジェクトはイベントの発生元であるres_xmlですから、
上のように書いてもまったく動きません。
かといって、_root...からの絶対パスで参照するのも気が引けます。
(オブジェクトとしての独立性が失われてしまいます)

res_xml.onLoadイベントハンドラメソッド内でzip_mcを相対的に参照する方法はないものでしょうか?
読み返してみると説明が冗長でしたね。お目汚し失礼いたしました。
フラット表示 前のトピック | 次のトピック

題名 投稿者 日時
 » XML.onLoad()内において親オブジェクトを参照する方法 mitsumoto 2005-7-28 22:48
     Re: XML.onLoad()内において親オブジェクトを参照する方法 ゲスト 2005-7-28 23:42
     Re: XML.onLoad()内において親オブジェクトを参照する方法 Fumio 2005-7-29 1:24
       Re: XML.onLoad()内において親オブジェクトを参照する方法 mitsumoto 2005-7-29 12:30
         Re: XML.onLoad()内において親オブジェクトを参照する方法 Fumio 2005-7-29 12:35
           Re: XML.onLoad()内において親オブジェクトを参照する方法 mitsumoto 2005-7-29 13:32
             Re: XML.onLoad()内において親オブジェクトを参照する方法 Fumio 2005-7-29 17:22
               Re: XML.onLoad()内において親オブジェクトを参照する方法 mitsumoto 2005-7-29 20:07

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops