突然,Flex似乎不喜欢变量声明。例如,我写(在mxml组件的脚本部分)
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
var i:int = 1;
while(i< 9) i++;
[Bindable]
public var evolution:ArrayCollection = new ArrayCollection();
]]>
</mx:Script>
它说变量i尚未定义。这对我没有任何意义。什么可能出错?当我将evolution ArrayCollection调用不带参数的简单构造函数时,它突然发生了。我想用while循环添加项目,但现在我已经删除了几乎所有的代码,我无法弄清楚出了什么问题它似乎不再能识别我的变量了!我疯了。
答案 0 :(得分:3)
如果你将循环包装在一个函数中,你将会遇到这个问题。
事实上,无论何时尝试在函数外部运行代码,都会出现这样的错误。
例如,如果您添加了一些设置evolution ArrayCollection的.source属性的代码,如下所示:
evolution.source = [1, 2, 3];
然后你会在那一行得到一个错误,告诉你''evolution'是未定义的。
希望有所帮助。
答案 1 :(得分:1)
它没有告诉你变量i没有定义,它告诉你我没有定义属性。
我认为你不能在实际函数之外运行while循环。而且,真的,也没有理由。如果你需要立即运行该循环,可以将它放在初始化函数中。
答案 2 :(得分:1)
虽然在mxml文件中,您会看到很多xml标记,但是在编译mxml文件时,它会被转换为类。因此,不可能只在不在函数中的类中编写一些代码。