2014-10-16 43 views
0

您好,简单的是烦我,我想要一些帮助!添加迭代到循环AS3

function highlight(textField:TextField):void 
    { 
     var l:int = textField.text.length 

      for(var i:int = 0; i < l; i++) 
       if (!highlightChar(textField, i)) 
        l++; 

    } 

这个循环遍历字符串在字符后面添加一个框,用于突出显示效果。一些字符失败(边界框为空,假设这些是返回等),在我看的例子中它返回false 5次,并且这些框的长度是5个字符。我试图添加另一个迭代,当它无法继续前进另外5个字符时,但此循环从不停止。

是否有另一种方法呢?

+1

是您的最终目标,以“加另一次迭代时失败......”或者是什么你在这里完成了这个代码?你有一个无限循环的原因是你成功地添加了迭代,并且你永远不会停止添加迭代。 – Houseman 2014-10-16 21:56:00

+0

是的。这是目标。失败时添加更多。我是否以这种错误的方式去做? – user5839 2014-10-16 22:05:31

+1

通过执行'l ++',您成功添加更多内容。但是,这会给你一个无限循环,因为在循环结束之前'i'需要大于'l'。 – Houseman 2014-10-16 22:07:25

回答

0

哈克解决方案 - 收集失败计数,然后做第一个完成已定后,另一个回路它

 if(fails > 0) 
      for(var f:int = i; f < fails + i; f++){ 
       var box:Shape = highlightChar(textField, f); 
       if(box) boxes.addChild(box) 
      }