即使我知道这很简单,我也坚持这样做。然而,我遇到了错误。
我有的:
我有 3 个数组。
- 第一个数组包含
UpgradeButton
类的对象。 - 第二个数组包含
BuyButton
类的对象。 - 命名的第三个数组
newCostlyShops
包含数字。
BuyButton
class 和UpgradeButton
class 都有一个shopCode
成员,它是一个数字;我试图等同的数字。
我正在尝试做的事情:
我的目标是首先在各个数组中查找BuyButton
与.UpgradeButton
shopCode
newCostlyShops
之后,我removeChild()
将那个对象和splice
它从数组中取出。
我的代码:
阵列 3:
var newCostlyShops:Array = new Array();
newCostlyShops = Object(root).WorkScreen_mc.returnCostlyShops();
trace(newCostlyShops); // this is tracing out the exact shopCodes I want and is working fine.
删除和拼接代码:
for (looper = 0; looper < upgradeButtonsArray.length; looper++) {
for (var secondLooper: int = 0; secondLooper < newCostlyShops.length; secondLooper++) {
if (upgradeButtonsArray[looper].shopCode == newCostlyShops[secondLooper]) {
trace(looper);
trace(upgradeButtonsArray[looper]);
removeChild(upgradeButtonsArray[looper]);
upgradeButtonsArray.splice(looper, 1);
}
}
}
for (looper = 0; looper < buyButtonsArray.length; looper++) {
for (secondLooper = 0; secondLooper < newCostlyShops.length; secondLooper++) {
if (buyButtonsArray[looper].shopCode == newCostlyShops[secondLooper]) {
trace(looper);
trace(buyButtonsArray[looper]);
removeChild(buyButtonsArray[looper]);
buyButtonsArray.splice(looper, 1);
}
}
}
这段代码有什么问题:
我不断收到错误
TypeError:错误#1010:术语未定义且没有属性。
此错误仅在第一次运行此代码之后出现,而不是第一次运行。当我删除removeChild
andsplice
时,这会追踪出不为空的对象。即使在整个函数被调用 100 次之后,也不会显示错误。只有当我removeChild
和使用splice
这种情况发生。
我在做什么有问题吗?如何避免这个错误?这使整个程序陷入混乱。如果此方法还有其他替代方法,我愿意采用这些方法,只要我没有出错并且达到我的目标。