在AS3上获取此错误。 TypeError:错误#1006:value不是函数。我是新手,无法理解为什么会出现这种错误。非常感谢任何帮助。
$filename="1.pdf";
$newString= explode(".",$filename);
$pdfPath="./public/site/userdocuments/sagar/RetData/".newString[0].".pdf";
在AS3上获取此错误。 TypeError:错误#1006:value不是函数。我是新手,无法理解为什么会出现这种错误。非常感谢任何帮助。
答案 0 :(得分:2)
var wallet = false;
var bag = false;
var lunch = false;
然后向它们添加事件侦听器。 但由于它们不是EventDispatcher的实例,因此会出现此错误
你为什么这样做?
您应该将click事件侦听器添加到显示对象。如果你有这些显示对象(名为钱包,包和午餐),那么你在这里用布尔值遮蔽它们。
在这种情况下,只需在此重命名您的变量(以及所有出现的变量,排除addEventListener
行。例如walletClicked
,bagClicked
,lunchClicked
而且:总是使用类型注释,因为你在as3。
var wallet:Boolean = false;
然后wallet.addEventListener(...)
将导致编译时错误,而不是运行时错误。哪个更容易纠正。
<强>更新强>
您还应该考虑以更通用的方式重写此代码以排除代码重复:
var walletFound:Boolean = false;
var lunchFound:Boolean = false;
var bagFound:Boolean = false;
wallet.addEventListener(MouseEvent.CLICK, onItemClick);
lunch.addEventListener(MouseEvent.CLICK, onItemClick);
bag.addEventListener(MouseEvent.CLICK, onItemClick);
function onItemClick(event:MouseEvent):void {
var found:Boolean;
var itemName:String;
switch (event.currentTarget) {
case wallet:
found = walletFound;
itemName = "wallet";
walletFound = true;
break;
case bag:
found = bagFound;
itemName = "bag";
bagFound = true;
break;
case lunch:
found = lunchFound;
itemName = "lunch box";
lunchFound = true;
break;
default: return;
}
var text:String;
if (found) {
text = "You Already found your " + itemName + ",look Elsewhere";
} else {
text = "You found your " + itemName;
}
trace(text);
TextBox.text = text;
}
没有测试过,但应该可以使用。