clearTimeOut函数参数传入uint类型参数后报错
本帖最后由 yunjing 于 2020-12-7 13:45 编辑大佬,我遇到个奇怪的问题,clearTimeOut 这个Utils包函数,我自己照着写试试运行。
我是照着写也直接复制原码过,传入了之前声明setTimeOut时的变量,运行时编译器报错参数不能多于0个?
但是我网上,帮助文档里查到的都是要传入一个uint类型参数。这是什么情况啊?#:Q
下面是我照着写的代码原文
package {
import flash.display.Sprite;
import flash.utils.*;
public class SetTimeoutExample extends Sprite {
private var delay:Number = 1000;
public function SetTimeoutExample() {
var intervalId:uint = setTimeout(myDelayedFunction, delay, "Hello", "World");
}
public function myDelayedFunction():void {
trace(arguments + " " + arguments);
} public function clearTimeout():void {
if(intervalId>0) {
clearTimeout(intervalId);
}
}
}
}
intervalId这个变量要定义在函数外边 本帖最后由 yunjing 于 2020-12-8 14:44 编辑
wuliao2014 发表于 2020-12-8 09:12
intervalId这个变量要定义在函数外边
我也把这段代码 去掉包类 之后直接写在fla里过,同样报这个参数数量错误。
方法外声明,方法内再来实例我也改过。还是这个错误。
import flash.utils.clearTimeout;
import flash.utils.setTimeout;
private var st:uint;
private function test():void
{
st=setTimeout(input,1000,"Hello","World");
}
private function input():void
{
trace(arguments + " " + arguments);
if(st>0)
{
clearTimeout(st);
}
} 这样用,完全没问题啊! wuliao2014 发表于 2020-12-9 10:42
这样用,完全没问题啊!
我发现问题了,这个代码有问题,
调用clearTimeOut的方法名也叫clearTimeOut。
执行原本清除用的clearTimeOut实际上没被调用,调用的是本地这个clearTimeOut。
本地这个是没有参数的 于是就有参数个数错误的error。
我是真没想到搜出来试试的代码本身就不对
页:
[1]