// content loaders
if (_contentLoaders != null)
{
// iterate through all the content loaders then dispose it
for (var i:int = 0; i < _contentLoaders.length; i++)
{
_contentLoaders[i].dispose();
}
_contentLoaders.splice(0, _contentLoaders.length);
_contentLoaders = null;
}
// text content loaders
if (_textContentLoaders != null)
{
// iterate through all the text content loaders then dispose it
for (var i:int = 0; i < _textContentLoaders.length; i++)
{
_textContentLoaders[i].dispose();
}
_textContentLoaders.splice(0, _textContentLoaders.length);
_textContentLoaders = null;
}
大家好,我多次遇到过这个问题(事实上它不应该是一个问题,如果我理解正确,那应该是一种语法设计就像那样)。
从上面的代码中,你看到2个for循环块,你看到我为每个块声明了变量i。我使用Flash v.10.2设置FlashDevelop运行此代码。它提示我错误说“重复变量定义”。
我可以通过在这2个for-loop块之外声明变量i来解决这个问题,并为这两个块重用i。但对我自己来说,这并不是那么干净的代码。 我的问题是
“这是动作脚本的意图吗? 3会这样吗?通过限制 这种方式可变范围。或者它可以 修改后可以调整一些选项 编译器或说解释器 在这种情况下?“
提前致谢。
答案 0 :(得分:0)
在第二个循环中将i
的名称更改为j
,或在for循环之外声明i
,所有问题都将得到解决。
问题是,一旦你第一次声明i
,它就存在于功能块的范围内,所以当你试图在块中进一步重新声明时,你就会收到错误。
顺便说一句,我个人认为在循环之外声明i
没有任何问题。
这是AS3中的范围问题,您很可能也会在许多其他OOP语言中找到它。