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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     非同期の処理について
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
くまがい
Åê¹ÆNo.24240
投稿日時: 2006-3-9 17:48
常連
居住地:
投稿: 82
使用環境:
Flash MX2004 Pro
WinXP
非同期の処理について
現在、コンボボックスを複数配置したムビークリップ上で、ロード時にサーバから取得したデータをそれぞれのコンボボックスにセットする仕組みを進めております。

import mx.rpc.*
import mx.remoting.*
import mx.controls.Alert;

function cmb1(){
 //AMFPHPを使用しております
 var sv:Service = new Service(gatewayUrl, null, 'hoge_class', null, null);
 var pc:PendingCall = sv.func_hoge1();
 pc.responder = new RelayResponder(this, 're1_Result', 're_Fault');
}
function cmb2(){
 var sv:Service = new Service(gatewayUrl, null, 'hoge_class', null, null);
 var pc:PendingCall = sv.func_hoge2();
 pc.responder = new RelayResponder(this, 're2_Result', 're_Fault');
}
function re1_Result(re:ResultEvent){
 //コンボボックスにデータをせっと
}
function re2_Result(re:ResultEvent){
 //コンボボックスにデータをせっと
}
function re_Fault(evt:FaultEvent){
 Alert.show(evt.fault.faultstring);
}

cmb1();
cmb2();

実行すると下記のエラーがでます。
no class named hoge_class is known to the gateway

function re1_Result内でcmb2を呼び出す方法にすれば、問題は解決します。
function re1_Result(re:ResultEvent){
 //コンボボックスにデータをせっと
 :
 :
 cmb2();
}

非同期で処理されることが原因で生じるエラーだと思うのですが、このやり方だと関数を再利用するのが難しくなったり、コンボボックスがいくつもある場合などには不恰好なスクリプトになります。

なにかこの問題を解決するよい方法はありませんでしょうか。
ご教授お願いします。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

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