使用removeChild()并访问数组

时间:2015-06-09 05:31:09

标签: arrays actionscript-3 removechild array-splice

即使我知道这很简单,我仍然坚持这样做。然而,我遇到了错误。

我有什么:

我有3个阵列。

  1. 第一个数组包含UpgradeButton类的对象。
  2. 第二个数组包含BuyButton类。
  3. 的对象 名为newCostlyShops
  4. 第三个数组包含数字。
  5. BuyButton类和UpgradeButton类,都有一个shopCode成员,这是一个数字;我试图等同的数字。

    我想做的事情:

    我的目标是首先在相应数组中查找BuyButtonUpgradeButton个对象,这些对象的shopCodenewCostlyShops中的removeChild()相同。

    之后,我splice该对象并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. 将其从数组中删除。

    我的代码:

    数组3:

    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);
    
        }
      }
    }
    

    删除和拼接代码:

    removeChild

    本准则有什么问题:

    我一直收到错误

      

    TypeError:错误#1010:术语未定义且没有属性。

    此错误仅在第一次运行此代码后 时才会出现 当我删除spliceremoveChild时,会追踪 null的对象。即使在整个函数被调用100次之后,也不会显示错误。只有当我splice并使用void SendText(string str) { for (std::string::iterator it = str.begin(); it != str.end(); ++it) { PostMessage(h, WM_KEYDOWN, VkKeyScan(*it), 0); } return; } 时才会发生这种情况。

    我做的事情有问题吗?如何避免这个错误?这使整个程序陷入混乱。如果除了这种方法之外还有其他任何替代方法,只要我没有收到错误并达到我的目标,我就可以采取这些方法。

1 个答案:

答案 0 :(得分:0)

这可能听起来很有趣,但....在拼接后尝试减少sp diameter height breaking pattern actcon 15,10 9,50 no norm actcon 8,90 9,46 no norm actcon 7,00 9,40 no norm actcon 12,50 9,25 no norm actcon 8,60 9,00 no norm actcon 7,70 8,76 no norm actcon 0,80 0,50 yes norm actcon 0,50 0,50 no norm actcon 0,90 0,53 yes norm actcon 0,55 0,54 no norm actcon 0,65 0,54 no norm actcon 1,10 0,50 no curv actcon 0,85 0,93 no norm actcon 1,20 0,94 no norm actcon 1,30 0,94 no deit actcon 0,90 0,94 no norm actcon 2,10 0,94 yes norm actcon 1,00 0,95 no norm actcon 0,90 0,95 no norm actcon 0,80 0,95 no norm actcon 1,00 0,95 no norm actcon 1,05 0,96 no norm actcon 1,00 0,96 no norm actcon 0,90 1,30 no esti

looper

我认为在拼接数组之后,所有项目都会被移动,而你正在跳过下一个项目。

此外,您应该获得有关此错误的更多信息,例如哪个类/行正在抛出它。也许您需要启用“许可调试”或其他什么?

奖金建议: 对于 trace(looper); trace(upgradeButtonsArray[looper]); removeChild(upgradeButtonsArray[looper]); upgradeButtonsArray.splice(looper, 1); looper--; 使用字典而不是数组,所以您不必为内部嵌套...