2011-09-13 12 views
0

AS3、または一般的なプログラミング(php、jsなど)でイベントを発生させる方法があるか、if/else if/elseステートメントに反対する何かを行うときに "いつ"を有効にしますか? ?は、if/else ifなどと反対のプログラミング時にはいつですか?

たとえば、フレームラベルがヒットしたときにのみイベントを発生させたいとし、その後、何か他のことをするなど、本質的には、会ったif/elseに対抗してこれを行うステートメントなどの "when"型がありますか?

Code: 
xyz.addEventListener(Event.ENTER_FRAME/or INIT , btn); 

function btn(e:Event):void{ 
    if (externalSwf.currentFrameLabel == " label here "){ 
      do something code here. 
    } 

} 

このようにそれを行うための方法があります:上記の例を使用して、私の代わりにこのような何かやっ例えば

Code: 
xyz.addEventListener(Event.ENTER_FRAME/or INIT , btn); 

function btn(e:Event):void{ 
    when (externalSwf.currentFrameLabel == " label here "){ 
      do this. 


      when (this happens){ 
     do this next 
} 
    } 

} 

などを...

これをどのように達成できますか?

理由は私は少しプロジェクトのIMは(外部のswfsコードのスムーズな移行)が部分的に動作しているが私は人生のために私は直接私が持っているもののような構造を実装する方法を理解することはできません上記。

本質的に私が言っているのは、私は必要条件を必要としません。確かに...もし意味があるのならば。

その混乱を望みません。

ヒントのアイデアなど私は喜んで感謝します。

ありがとうございました。

+0

イベントの進行にどれくらいの時間がかかるかについて、ある種の状態を保存する必要があるように思えます。 (状態遷移はイベントハンドラによってトリガされます)。 – Thilo

+3

通常の 'if'と' when'キーワードの違いはわかりません。どのように異なる動作をするかの例を追加できますか? – Kapep

+0

私は彼が 'いつ'のように振る舞うかを望んでいると思う:「戻り制御フローだが、この新しい条件が満たされるとすぐにここに戻ってくる」 – Thilo

答えて

0

あなたは、いくつかの値のオブジェクトのいくつかのプロパティ(例えばprop)(例えばEventDispatcherを拡張するタイプExampleの)、あなたはpropのseterでイベントを投げる必要があるときに何かをしたい場合。だから、私は次のようなものをお勧めします

class Example1 extends Example { 
    public static var eventName = "event_name"; 
    //var prop is declared in Example class 
    public function setProp(val: string) { 
     prop = val; 
     if (prop == "some_value") { 
      dispatchEvent(new flah.events.Event(eventName)); 
     } 
    } 

    public function init() { 
     addEventListener(eventName, handler); 
    } 

    private function handler(e: Event) { 
     //do whatever you like here 
    } 
} 

まあ、あなたは私の考えを思いついたと思います。それがあなたを助けることを願っています!

2

あなたが探しているものは、すでにイベントによって行われています。例えば、新しいフレームがレンダリングされると、イベントはを発生させます。フレームが特定のラベルを持っている場合場合、を確認することができます。

フレームラベルの例では、必要なフレームだけを起動するカスタムリスナーを作成できます。その場合、whenブロックがコールバック関数になります。

frameLabelEventDispatcher.addEventListener("label here", whenLabel); 

function whenLabel() { /* do something */ } 
関連する問題