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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     ComboBoxのchangeイベントからのAlertの表示
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
cozzy
Åê¹ÆNo.26041
投稿日時: 2006-6-14 12:41
新米
居住地: 川崎市
投稿: 6
使用環境:
WinXP Pro(SP2),Flash8 Pro,
ComboBoxのchangeイベントからのAlertの表示
こんにちは。

Flash8 Proを使用しています。
Alertコンポーネントについてですが、
ComboBoxコンポーネントのchangeイベント内でAlert.showにより
Alertを表示するとフリーズしてしまい困っています。

ComboBoxではなくButtonコンポーネントのclickイベントで試したところ
フリーズせずAlertが表示されます。

また、FlashMX 2004の環境が手元にないため、試すことができないのですが、
FlashMX 2004では、ComboBoxのchangeイベントでもフリーズせずAlertが表示
されたと記憶しています。

テスト用に作成したソースは以下になります。
Buttonコンポーネントをtest_btn、ComboBoxコンポーネントをtest_cmbのインスタンス名としています。


import mx.controls.Alert;

var myClickHandler:Function = function (evt_obj:Object) {
  if (evt_obj.detail == Alert.OK) {
  }
};

var test_Lsn:Object = new Object();
test_Lsn.change = function(evt) {
  Alert.show("Launch Stock Application?", "Stock Price Alert", Alert.OK | Alert.CANCEL, null, myClickHandler, "stockIcon", Alert.OK);
};

test_Lsn.click = function(evt) {
  Alert.show("Launch Stock Application?", "Stock Price Alert", Alert.OK | Alert.CANCEL, null, myClickHandler, "stockIcon", Alert.OK);
};

test_cmb.addEventListener("change", test_Lsn);
test_btn.addEventListener("click", test_Lsn);
stop();


ComboBoxコンポーネントのchangeイベントからAlertを表示することはできないのでしょうか?
また、フリーズする原因等回避する方法をご存知の方がいらっしゃいましたら
教えていただけないでしょうか?
よろしくお願いいたします。
ごんざえもん
Åê¹ÆNo.26044
投稿日時: 2006-6-14 14:53
常連
居住地: 北かんとー
投稿: 123
使用環境:
Windows XP SP3
Windows7
Windows VISTA
MacOSX10.6
FlashMX2004
Flash8 pro
Flash CS6 (体験版…)
Re: ComboBoxのchangeイベントからのAlertの表示
現象再現できました
何故なんでしょう。。。
ComboBoxのchangeイベントが何度も起きてしまいますね。
UIObject.doLater()とか関わっているのかなぁ。。。

ひとまず、1フレーム遅らせてアラートを表示すると
大丈夫みたいです。

引用:

cozzyさんは書きました:


import mx.controls.Alert;

var myClickHandler:Function = function (evt_obj:Object) {
  if (evt_obj.detail == Alert.OK) {
  }
};

var test_Lsn:Object = new Object();
test_Lsn.change = function(evt) {
  evt.target.onEnterFrame = function(){
      Alert.show("Launch Stock Application?", "Stock Price Alert", Alert.OK | Alert.CANCEL, null, myClickHandler, "stockIcon", Alert.OK);
      delete this.onEnterFrame;
  }
};

test_Lsn.click = function(evt) {
  Alert.show("Launch Stock Application?", "Stock Price Alert", Alert.OK | Alert.CANCEL, null, myClickHandler, "stockIcon", Alert.OK);
};

test_cmb.addEventListener("change", test_Lsn);
test_btn.addEventListener("click", test_Lsn);
stop();



----------------
gonzaemon

野中文雄
Åê¹ÆNo.26045
投稿日時: 2006-6-14 15:03
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: ComboBoxのchangeイベントからのAlertの表示
確かに、Flash MX 2004では、問題なく動作するようです。Flash 8からFlash Player 7でパブリッシュしても、現象は解消しません。オーサリング環境のおそらくクラスファイルにバグがありそうな雰囲気です。
引用:
cozzyさんは書きました:
ComboBoxコンポーネントのchangeイベント内でAlert.showにより
Alertを表示するとフリーズしてしまい困っています。

取りあえずの対症療法として。
import mx.controls.Alert;

var myClickHandler:Function = function (evt_obj:Object) {
  if (evt_obj.detail == Alert.OK) {
  }
};

var test_Lsn:Object = new Object();
test_Lsn.change = function(evt) {
	var _cmb:mx.controls.ComboBox = evt.target;
	_cmb.removeEventListener("change", this);
	Alert.show("Launch Stock Application?", "Stock Price Alert", Alert.OK | Alert.CANCEL, null, myClickHandler, "stockIcon", Alert.OK);
	_cmb.addEventListener("change", this);
};

test_Lsn.click = function(evt) {
  Alert.show("Launch Stock Application?", "Stock Price Alert", Alert.OK | Alert.CANCEL, null, myClickHandler, "stockIcon", Alert.OK);
};

test_cmb.addEventListener("change", test_Lsn);
test_btn.addEventListener("click", test_Lsn);
stop();


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

cozzy
Åê¹ÆNo.26060
投稿日時: 2006-6-14 18:13
新米
居住地: 川崎市
投稿: 6
使用環境:
WinXP Pro(SP2),Flash8 Pro,
Re: ComboBoxのchangeイベントからのAlertの表示
ごんざえもん様、野中文雄様
アドバイスありがとうございます。

お二人の対処法を両方試したところ
どちらの対処でもAlertが表示できました。

参考にさせていただきたいと思います。

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

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