2009-07-31 9 views
0

標準のFlash ComboBoxコンポーネントをCS3(AS2)プロジェクトに追加しました。それは私の図書館のシンボルの一部であり、ステージ上では作成されません。Flash ComboBoxコンポーネントがWebブラウザで間違った値を選択します(IDEで正常に動作します)

私はComboBoxのスキニング、ソースコードなどを変更しませんでした。

ユーザーがコンボボックスをクリックすると、リストが下がり、ユーザーがマウスを使用してアイテムを選択し、そのアイテムがそのコンボボックスで動作するコードに渡されます。

Flash IDEでは、すべて正常に動作します。しかし、これをWebSiteにデプロイして、WebブラウザでFlashページを表示すると、ユーザーがドロップダウンリストの値をクリックすると、別の値が選択され、タイプインボックスに表示されます。 (私はMAC上でFirefox 3.0.12を使用していますが、私たちのQAは他のブラウザとバージョンで問題を認識しています)。この同じ誤った値は、私の変更イベントコールバックにも渡されます。

問題は、Flash Player 9のために明らかであると

10.私は、コンボボックスから値を取得する2つの方法を試してみました。

a)コンポーネントに直接アクセスして選択を取得します。このアプローチを使用する場合、ユーザがキーボードを使用して番号のORタイプを直接選択すると、IDEおよびブラウザで機能します。マウス選択のみが失敗します。

var num_pages_value:Number = Number(num_pages.num_pages_cb.selectedItem["data"]); 

b)イベントハンドラを使用する。この方法を使用すると、ComboBoxへのキーボードアクセスが機能しなくなります。イベントハンドラを設定する方法は次のとおりです。

var cb:ComboBox = num_pages.num_pages_cb;

// mx.events.EventDispatcher.initializeを指定しないと、変更イベントは発生しません!!!
//ドキュメントにはありません。これを見つけるのがとても難しかったです... mx.events.EventDispatcher.initialize(cb); cb.addEventListener( "change"、this);

ここにイベントハンドラがあります。

機能変更(evt){ num_pages_value = Number(evt.target.selectedItem.label); }

私は、mx.events.EventDispatcher.initializeの呼び出しがキーボードのやりとりを壊すものだと思っていますが、それがなければハンドラは呼び出されません。しかしどちらの方法もユーザーが望む値を選択することはできません。 7点を選んで9点、3点を選んで6点を取得します。得られる価値は毎回同じではありません。

+0

シナリオを再作成しようとしています。どのサイズがあなたのswfですか? html/FlashVarsから何かセットアップ?ライブラリからComboBoxを作成しているので、createClassObjectで作成していますか? –

答えて

0

問題を再現しようとしています。

これまでのところ、簡単なテストが私のために働いていました。私は図書館にラベルとコンボボックスを持っていた

import mx.controls.ComboBox; 
import mx.controls.Label; 

var cb:ComboBox = this.createClassObject(ComboBox,'cb',0); 
for(var i:Number = 0 ; i < 10 ; i++) cb.addItem({label:'item'+(i+1)}); 

var l:Label = this.createClassObject(Label,'l',1,{_x:cb.width,text:'selection'}); 

var listener:Object = new Object(); 
listener.change = function(event:Object):Void{ 
l.text = cb.selectedItem.label; 
} 
cb.addEventListener('change',listener); 

は、ここに私のコードです。 ラベルは、CS3のデフォルトの生成HTMLファイルでマウスを使用して変更されます。このテストのために

は、私が使用:

  • のFlash Player 10,0,32,18デバッガ
  • のMac OS 10.5.6
  • のFirefox 3.5.6(Mozillaの/ 5.0 (マッキントッシュ。 U;インテルのMac OS X 10.5; EN-US; RV:1.9.1.6)のGecko/20091201 Firefoxの /3.5.6 GTB6)

HTH、 ジョージ

関連する問題