2017-03-02 8 views
2

私はプログラミング時に新しいので、私のコードで問題に直面しました。 他の関数を変更せずに、作成した変数の同じ値を最後の関数内で取得し続けます。 これは私がやりたいことです:最後に適用された関数 "onActivate"または "onDeactivate"から変数 "state"の値を使用し、この変数 "state"を "ShowState"関数内でテストしたいとします。2つの関数の中で変数の値を変更し、結果を別の関数に表示

import flash.utils.Timer; 
 
import flash.events.Event; 
 

 
stop(); 
 

 
var state: Boolean = true; 
 

 
\t stage.addEventListener(Event.ACTIVATE, onActivate); 
 
\t stage.addEventListener(Event.DEACTIVATE, onDeactivate); 
 
\t 
 
    function onActivate(Event): void { 
 
\t \t \t state == true; 
 
\t \t trace("inside"); 
 
\t } 
 

 
\t function onDeactivate(Event): void { 
 
\t \t \t state == false; 
 
\t \t trace("outside"); 
 
\t } 
 
    
 
\t var StateTime: Timer = new Timer(6000, 0); 
 
\t StateTime.addEventListener(TimerEvent.TIMER, ShowState); 
 
\t StateTime.start(); 
 
    
 
\t function ShowState(evt: Event): void { 
 
\t \t if (state == true) { 
 
\t \t \t trace("Ready"); 
 
\t \t } 
 
\t }

+0

どのように非アクティブ化イベントをテストしていますか?たとえば、デスクトップを起動していますか?ブラウザを開く?またはマウスを表示ウィンドウから移動するだけですか? –

+0

私はあなたがなぜこれをやっているのか知りたいかもしれません。ポーズ機能を設定しているのか、それとも何ですか? –

答えて

4

私が正しくあなたの問題を理解していれば、あなたはあなたのOnActivateイベントおよびOnDeactivateの機能であなたの状態変数の値を変更したいです。

ShowState関数と同じように、変数 '=='を比較したいときに使用します。

ので、代わりに、単一「=」記号が使用されている値を設定するには:あなたが使用する必要があります

state == true; // in your onActivate function 
// and 
state == false; // in your onDeactivate function 

:問題のほかに

state = true; // in your onActivate function 
// and 
state = false; // in your onDeactivate function 

あなたが値を設定している、それは良いですactionscriptで小文字の関数名を開始することを練習してください。最後に、あなたの関数宣言のパラメータが、私はこれがエラーの原因になりますかどうかわからないんだけど、かなり正直に言うと、あなたのOnActivateイベントおよびOnDeactivateの機能で命名されていない

、代わりの:

function onActivate(Event) : void { 
    // your code 
} 

あなたは可能性がありを使用してください:

function onActivate(e : Event) : void { 
    // your code 
} 

希望は、すべての明確な、幸運です!

+0

ありがとうございました! – Selena

+0

@Selenaスタックオーバーフローを歓迎します。正解の横にあるチェックマークを必ず確認してください。感謝の気持ちを伝え、他の人にあなたの問題がまだ注目を必要としていないことを伝えます。 –

関連する問題