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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     Alertの同期が取れない
投稿するにはまず登録を

スレッド表示 | 古いものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
akymkznr
Åê¹ÆNo.8479
投稿日時: 2004-6-21 13:53
新米
居住地:
投稿: 3
使用環境:
WinXP Pro,
Flash MX2004
Re: Alertの同期が取れない
そうですね。
他の言語のアラートと同じ感じで考えてました。

本当にご丁寧にありがとうございました。

森 巧尚
Åê¹ÆNo.8440
投稿日時: 2004-6-18 12:55
モデレータ
居住地: 宝塚
投稿: 650
使用環境:
.5/CS4/Safari3
XP+2000//IE6
Re: Alertの同期が取れない
akymkznrさんは、他のプログラム経験があってそれと比較されているような感じがしますが、そうでしょうか?
例えば、VBのmsgboxだと
ret = msgbox("メッセージ", MB_YESNO, "タイトル")
if ret = IDYES then
    ' 「はい」のときの処理
end if

という風にメッセージのダイアログが閉じるまでその次の行は実行されませんが、Flashの場合は、
Alert.show("メッセージ","タイトル", Alert.OK | Alert.CANCEL, this, myClickHandler, "stockIcon", Alert.OK);
trace("アラート後");

「Alert」の次の行の「trace」は、Alertダイアログが閉じられるのを待たずにすぐに実行します。
VC++とか他の言語でしょうか。それで言うなら、モーダルダイアログとモードレスダイアログの違いですね。FlashのAlertは、ムービークリップを別に表示してダイアログとして表示させているので、それぞれの時間の進行は独立していますから、言って見ればモードレスダイアログのような状態ということです。
Flashでは常に時間が進行していますから、モーダルダイアログのようにプログラムの進行をそこで止めておくようなことができません。そのためのClickHandlerなのですね。


----------------
森 巧尚
http://www.ymori.com

野中文雄
Åê¹ÆNo.8438
投稿日時: 2004-6-18 12:00
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: Alertの同期が取れない
「仕様」といえば、確かに「仕様」です。でも、録画「予約」の設定をしている最中に「録画」が始まったりしないというのは、ユーザーの期待に添った仕様だと思います。意図が正しく伝わっているか若干不安があるので、補足します。
引用:
akymkznrさんは書きました:
アプリケーションの仕様上、こういった同期の取り方はできないという事ですね。

Condoさんのいわれるとおり、スクリプトの書き方として処理の記述場所は、trace()ステートメントに指定された文字列"アラート前"、"アラート後"とは逆になります。
引用:
近藤泰一さんは書きました:
従って出力で「アラート後」→「アラート前」と表示されるのは正しいです。
traceの内容が逆ですね。

import mx.controls.Alert
myClickHandler = function (evt){  // コールバック関数の「定義」
    // Alertダイアログボックスのボタンが押された「後」の処理を記述
    trace("アラート前");
}

Alert.show("メッセージ","タイトル", Alert.OK | Alert.CANCEL, this, myClickHandler, "stockIcon", Alert.OK);  // 処理はここで停止せずに継続
// Alertダイアログボックス表示の「呼出し時」に実行される処理
// 画面そのものはスクリプトの処理完了後に更新表示される
// つまり結果としてAlertダイアログボックス表示「前」の処理
trace("アラート後");


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

akymkznr
Åê¹ÆNo.8436
投稿日時: 2004-6-18 11:23
新米
居住地:
投稿: 3
使用環境:
WinXP Pro,
Flash MX2004
Re: Alertの同期が取れない
アプリケーションの仕様上、こういった同期の取り方はできないという事ですね。
勉強不足でした。
ありがとうございました。
野中文雄
Åê¹ÆNo.8430
投稿日時: 2004-6-18 6:22
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: Alertの同期が取れない
処理内容を、理解される必要があると思われます。
引用:
ばんさんは書きました:
Alertを表示して、OKやCANCELボタンを押したらその続きの処理をするようにしたいのですが、
ボタンを押す前に先の処理が流れてしまいます。

ビデオの録画予約なら、こんな感じです。
// 録画予約開始
myClickHandler = function (evt){
    // 予約内容: 録画指定時刻になったら
    // ビデオの電源オン
    trace("アラート前");
    // 指定チャンネルを指定時間録画する
}
// 録画チャンネルと時間の指定
Alert.show("メッセージ","タイトル", Alert.OK | Alert.CANCEL, this, myClickHandler, "stockIcon", Alert.OK);
// ビデオの電源オフ
trace("アラート後");

録画「予約」をしただけなのに、いきなり録画が「開始」してしまったら、そのビデオは壊れています。
引用:
”アラート前”を表示した後、”アラート後”を表示させたいのですが、逆になってしまいます。
どうしたら同期がとれるのでしょうか?

環境は WindowsXP Professional , Flash MX Professional 2004 です。


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

近藤泰一
Åê¹ÆNo.8416
投稿日時: 2004-6-17 16:03
常連
居住地: 神奈川県
投稿: 112
使用環境:
Pro Pro
Re: Alertの同期が取れない
こんにちは。

引用:
myClickHandler = function (evt){
trace("アラート前");
}


この部分は、アラートのボタンがクリックしたときに呼び出される部分です。

引用:
Alert.show("メッセージ","タイトル", Alert.OK | Alert.CANCEL, this, myClickHandler, "stockIcon", Alert.OK);
trace("アラート後");


ここでのtraceは、アラートボタンの設定・設置などが終わった後、
ユーザーのアクションを待たずに実行されます。
従って出力で「アラート後」→「アラート前」と表示されるのは正しいです。
traceの内容が逆ですね。

実際に何らかの振り分けの処理をする場合には、
myClickHandlerの方に設定することになります。
その場合、evt.detailでどのボタンがクリックされたかを取得します。


----------------
Condo Hirokazu
http://www.condo.fromc.jp/flash/

akymkznr
Åê¹ÆNo.8413
投稿日時: 2004-6-17 15:34
新米
居住地:
投稿: 3
使用環境:
WinXP Pro,
Flash MX2004
Alertの同期が取れない
ばんと申します。
初めて投稿させてもらいます。

Alertを表示して、OKやCANCELボタンを押したらその続きの処理をするようにしたいのですが、
ボタンを押す前に先の処理が流れてしまいます。

import mx.controls.Alert
myClickHandler = function (evt){
trace("アラート前");
}

Alert.show("メッセージ","タイトル", Alert.OK | Alert.CANCEL, this, myClickHandler, "stockIcon", Alert.OK);
trace("アラート後");

上記の様な感じで書いています。
”アラート前”を表示した後、”アラート後”を表示させたいのですが、逆になってしまいます。
どうしたら同期がとれるのでしょうか?

環境は WindowsXP Professional , Flash MX Professional 2004 です。
スレッド表示 | 古いものから 前のトピック | 次のトピック | トップ

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