dポイントプレゼントキャンペーン実施中!

いつもお世話になります。
ActionScrip3に関する質問です。

処理1が終わった段階で戻り値をreturnするという処理を
作成したく下記のように作りました。

流れとしては、関数func1の中に複数の処理があると仮定して、その一連の処理を完了させた
時点でevent.complete(処理完了)によりfunc2に移動し、func2から戻り値の値を
指定したいと考えております。

下記の処理を行ってもfunc1の中でreturnを指定していないので「関数は戻り値をかえしません」
というエラーになってしまいますが、下記の処理以外でも結構ですので、
「一定の処理完了後に戻り値(return)を発生」させる手段をご教授いただけないでしょうか?

お手数ではありますが、何卒宜しくお願いいたします。

var bln:Boolean;

bln = func1();

function func1():Boolean {

 // ここに複数の処理があると仮定する

 // 終了後イベント
 addEventListener(event.COMPLETE, finish);
 
 function finish() {
  return false;
 }
}

A 回答 (2件)

一回のコードの実行のなかで画像のロードを


待つってことはできないです

だからロード完了のイベントを待って
戻り値を返すなんて事はできません

スレッド系統のライブラリがあれば
できないこともない…
…ってこともないです

あれも結局イベントをまって次の
コード実行に移ってるだけなので
やっぱり戻り値を返すのを待つ
なんてことはできません



なんでfinishで画像を読み込んだ続きの処理を
直接実行させたくないのか?

答えはそれによるんですが
単純にコードを簡単にしたいとか
そういう理由ならあきらめて
finishで続きの処理を実行させるようにしましょう

おそらくそれが一番単純で簡単です


もしそうじゃないなら

例えば、このfunc1を違う引数で実行して
違う画像をロードしてその画像に基づいた
情報を利用する処理が複数ある、というならば
その違う画像をロードするfunc1で作った
それぞれのLoaderを戻り値にして
それぞれにそれぞれのCOMPLETEを待たせるとかしましょう
読み込みの完了を待って戻り値を返す事はできません


あるいは、このfunc1の画像が読み込まれた後に
それを利用して実行する続きの処理は
全然違う所にあって処理のタイミングが
はかれないんだっていうなら
カスタムイベントを使いましょう
(もしかしてdispatchEventしたかったの?
っていったのはこれです)

場合によってはEventクラスを拡張して
プロパティを乗っけてやるのも手です
    • good
    • 0
この回答へのお礼

H240S18B73様

ご回答ありがとう御座います。
上記でアドバイスしていただいている内容とは違う方法でですが、
解決することができました。

ありがとう御座いました。

お礼日時:2010/04/14 16:07

いろいろとわからないです



単純にこのコードのなかでfunc1()の次にfunc2を実行するのでは
いけない理由はなんでしょう?
func2は別のインスタンスに書かれてるコードなんでしょうか?


このコードはURLLoaderとかLoaderの
拡張クラスに書いてるコードなんですか?

僕の知る限りではCOMPLETEイベントは外部ファイル読み込みクラスの
画像やテキストのロード完了ぐらいでしか発信されないです
なんのロードのCOMPLETE待ってるんですか?

もしかしてdispatchEvent(new Event(Event.COMPLETE))したかったんでしょうか?


推測で返答しますが、別に画像やテキストのロードを待ってる訳じゃなく
『func1の戻り値を使ってfunc2を実行したい』だけなんだと踏んで返答します

イベント関係をいじくって回りくどくやらなくてもfunc1には最後に普通に戻り値をreturnさせて

func2(func1())

とやってやればfunc1を実行してからその戻り値を使ってfunc2を実行するようになってます
    • good
    • 0
この回答へのお礼

ご回答ありがとう御座います。
説明不足で申し訳御座いません。
下記インラインにて回答します。

>func2は別のインスタンスに書かれてるコードなんでしょうか?
先ず、func2ではなく、上記のソースにある通りfinishでした。
インスタンスやクラス等の場所は変わらず、func1とfinishを
実行する場所は同じ場所です。

>なんのロードのCOMPLETE待ってるんですか?
外部の画像のロードCOMPLETEを待っています。

func1で外部画像のロードを待ち、画像のロードが完了したら、
event.COMPLETEでfinishに移動し、戻り値を返したいと考えています。

画像ロードを待ってから戻り値を返せる手段があれば、
上記の方法でなくても構いません。

処理方法をご教授いただけると幸いです。

何度もお手数お掛けしますが、宜しくお願い申し上げます。

お礼日時:2010/04/13 15:53

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!