我是编程新手,我在下面的代码中遇到了问题。 我不断获得最后一个函数中创建的变量的相同值,而无需更改其他函数。 所以这就是我想要做的:我想使用上次应用的函数“onActivate”或“onDeactivate”中的变量“state”的值,并在“ShowState”函数内测试此变量“state”。
import flash.utils.Timer;
import flash.events.Event;
stop();
var state: Boolean = true;
stage.addEventListener(Event.ACTIVATE, onActivate);
stage.addEventListener(Event.DEACTIVATE, onDeactivate);
function onActivate(Event): void {
state == true;
trace("inside");
}
function onDeactivate(Event): void {
state == false;
trace("outside");
}
var StateTime: Timer = new Timer(6000, 0);
StateTime.addEventListener(TimerEvent.TIMER, ShowState);
StateTime.start();
function ShowState(evt: Event): void {
if (state == true) {
trace("Ready");
}
}
最佳答案
如果我正确理解您的问题,您想更改 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
}
希望一切都清楚了,祝你好运!
关于function - 更改两个函数内的变量值并在另一个函数中显示结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42562953/