私は最初のフレームでステージ上にComboBox(cbと呼ぶ)を持っています。私はそれを右揃えのテキストフィールドに設定したいと思います。開始時に、他のコンポーネントのイベントが最初に無効になり、しばらくしてからComboBoxが再度有効になります。Flash AS3 ComboBoxスタイルが使用されていません
私は(最初のフレームに)スタイルを設定するために、次のコードを使用:
var menuTextFormat:TextFormat = new TextFormat();
menuTextFormat.align = "right";
cb.textField.setStyle("textFormat", menuTextFormat);
cb.setStyle("textFormat", menuTextFormat);
cb.setStyle("disabledTextFormat", menuTextFormat);
video.addEventListener(VideoEvent.ON_CHANGE, function (event) {cb.enabled = okButton.enabled = false;})
video.addEventListener(VideoEvent.ON_READY, function (event) {cb.enabled = okButton.enabled = true; })
ビデオカメラが初期化されるとON_READYカメラが装着されたときにON_CHANGEイベントを送出単純なコンポーネントです。そのコードの後、私はcbに新しいDataProviderを与え、イベントをディスパッチするビデオコンポーネントにカメラをアタッチします。
フラッシュが開始されると、スタイルはアクティブではなく、テキストは左揃えになります。最初のイベントが発生すると、ComboBoxは無効になります。まだ左揃え。その後、2番目のイベントが有効になり、スタイルが適用され、右揃えになります。
最初から正しく整列したいです。私はASからコンポーネントを無効/有効にしようとしましたが、うまくいきませんでした。スタイルを適用するのに少し時間がかかるようです。
私はまた、スタイルが設定されていることを確認しました。私はタイマーを書き、整列をトレースしましたが、正しいと言われました。スタイルは使用されていません。
ASからaddChildを使ってコンポーネントを手動で追加しようとしましたが、まだ成功しませんでした。
どうやってスタイルを使用することができますか?
ありがとうございます!
環境:
CS5.5
AS3
Flash version: 11.1.102.55
OS: Win XP
アップデート:私は、コンボボックス(インスタンス名CB)と名付けライブラリからシンボルをドロップステージで
: 私はシンプルなコンセプトを作る方法を考え出しましたfoobar(インスタンス名のビデオ)。 foobar.asを作成し、次のように書き、その後
import fl.data.DataProvider;
import flash.events.Event;
import flash.text.TextFormat;
import fl.controls.ComboBox;
var menuTextFormat:TextFormat = new TextFormat();
menuTextFormat.align = "right";
cb.textField.setStyle("textFormat", menuTextFormat);
cb.setStyle("textFormat", menuTextFormat);
cb.setStyle("disabledTextFormat", menuTextFormat);
video.addEventListener(Event.ACTIVATE, function (event) {cb.enabled = false;})
video.addEventListener(Event.COMPLETE, function (event) {cb.enabled = true; })
var arr:Array = new Array();
for (var i=0; i<10 ; i++)
arr.push({label:"asdfasdf", data:i})
cb.dataProvider = new DataProvider(arr);
video.start()
:最初のフレームに次のコードを記述
package {
import flash.display.MovieClip;
import flash.events.Event;
import flash.utils.Timer;
public class foobar extends MovieClip {
private var myTimer:Timer = new Timer(3000);
public function start() {
dispatchEvent(new Event(Event.ACTIVATE))
myTimer.addEventListener("timer", timerHandler);
myTimer.start();
}
public function timerHandler(evt:Event) {
myTimer.stop()
dispatchEvent(new Event(Event.COMPLETE))
}
}
}
最初のイベントが発生すると、ComboBoxは無効になります。menuTextFormat.align = "right"; –
うまくいきませんでしたが、助言に感謝します!最初のディセーブル/イネーブルイベントの後、次のイベントでは正しく整列しているので、初めてスタイルを使用しないように見えます。 – face
いくつかのコードを提供して、コンボボックスの有効化と無効化の方法を示すことができます。これは、私がサンプルを作成していて、うまく動作するためです。 –