2017-03-02 59 views
2

我是編程新手,在我的代碼中遇到了問題。 我不斷收到最後一個函數中創建的變量的相同值,而無需更改其他函數。所以這就是我想要做的:我想從上次應用函數「onActivate」或「onDeactivate」中使用變量「state」的值,並在「ShowState」函數內測試該變量「state」。更改兩個函數內部的變量值並在另一個函數中顯示結果

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歡迎來到堆棧溢出。一定要檢查正確答案旁邊的勾號。這就是我們如何說謝謝,並讓別人知道你的問題並不需要更多的關注。 –

相關問題