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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   ActionScript 3.0 特設会議室
     イベントハンドラメソッドからの返り値が返ってこない
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
kamikinayu
Åê¹ÆNo.41755
投稿日時: 2009-3-12 17:06
新米
居住地: メモリ
投稿: 11
使用環境:
イベントハンドラメソッドからの返り値が返ってこない
AIRを作成中なのですが
下のようなコードで select_dataを実行するとイベントハンドラメソッドのselectHandler
が呼ばれるところまではいいのですが、返り値を受け取る変数resに返り値の"Result"の
値が返らずnullが返ってきます。

値が返らない原因が分からないので教えていただけないでしょうか。

//main.as
public function select_data(_sql:String)
{
sqlstmt = new SQLStatement();
sqlstmt.sqlConnection = sqlconnection;
sqlstmt.text = _sql;
sqlstmt.addEventListener(SQLEvent.RESULT, selectHandler);
sqlstmt.addEventListener(SQLErrorEvent.ERROR, selectErrorHandler);
sqlstmt.execute();
}

private function selectHandler(event:SQLEvent)
{
return "Result";
}


//top.fla
var sqlCustom:main = new main();
var res:String = sqlCustom.select_data("SELECT no FROM book_tbl");

作成環境
Flash CS3 / Actionscript3.0 / FlashPlayer10 /


----------------

永井勝則
Åê¹ÆNo.41756
投稿日時: 2009-3-12 17:27
職人
居住地: 白馬村
投稿: 796
使用環境:
Windows 7 :Flash CS4:
10.6.8 :Flash CS5.5
Re: イベントハンドラメソッドからの返り値が返ってこない
データベースはどこで開いているのですか?


----------------
永井勝則:
himco.jp :

kamikinayu
Åê¹ÆNo.41757
投稿日時: 2009-3-12 17:40
新米
居住地: メモリ
投稿: 11
使用環境:
Re: イベントハンドラメソッドからの返り値が返ってこない
Cドライブの直下のフォルダにtop.flaやmain.asと同じ場所においてあります。
下のメソッド内でSQLの結果もとれているんですが、
top.flaのresの値にnullが返ってきてしまいます。

private function selectHandler(event:SQLEvent)
{
 var result:SQLResult = sqlstmt.getResult();
 return "Result";
}

追記:
var sqlCustom:main = new main();
を実行した時に、main.asに記述してある
下の内容が実行されデータベースに接続されます。
//-------------constracutor-------------
public function main()
{
connect_db();
}


//データベース接続
private function connect_db():void
{
sqlconnection.addEventListener(SQLEvent.OPEN, openHandler);
sqlconnection.addEventListener(SQLErrorEvent.ERROR, openErrorHandler);
sqlconnection.open(file);
}

//接続完了
private function openHandler(event:SQLEvent)
{
sqlconnection.removeEventListener(SQLEvent.OPEN, openHandler);
sqlconnection.removeEventListener(SQLErrorEvent.ERROR, openErrorHandler);
}


----------------

野中文雄
Åê¹ÆNo.41758
投稿日時: 2009-3-12 17:57
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: イベントハンドラメソッドからの返り値が返ってこない
関数の呼出しと戻り値について、復習されることをお勧めします。

引用:
kamikinayuさんは書きました:
AIRを作成中なのですが
下のようなコードで select_dataを実行するとイベントハンドラメソッドのselectHandler
が呼ばれるところまではいいのですが、返り値を受け取る変数resに返り値の"Result"の
値が返らずnullが返ってきます。

値が返らない原因が分からないので教えていただけないでしょうか。
// public function select_data(_sql:String) {
public function select_data(_sql:String):String {
	sqlstmt = new SQLStatement();
	sqlstmt.sqlConnection = sqlconnection;
	sqlstmt.text = _sql;
	sqlstmt.addEventListener(SQLEvent.RESULT, selectHandler);
	sqlstmt.addEventListener(SQLErrorEvent.ERROR, selectErrorHandler);
	sqlstmt.execute();
	return "Result";
}

// private function selectHandler(event:SQLEvent) {
private function selectHandler(event:SQLEvent):void {
	// return "Result";
}


----------------
 

kamikinayu
Åê¹ÆNo.41759
投稿日時: 2009-3-12 18:58
新米
居住地: メモリ
投稿: 11
使用環境:
Re: イベントハンドラメソッドからの返り値が返ってこない
select_dataの返り値を求めているのに、
selectHandlerで返り値を返していたので返ってこない
ということでした。

すごい勘違いをしていました。

みなさん、ありがとうございます。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

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