这是关于点语法的基本Flex问题。我正在使用Flash Builder 4,每当我对对象或URLVariable使用点语法时,Flash Builder就会给出以下警告:动态类型flash.net.URLVariables中未定义变量操作
例如:
var vars:URLVariables = new URLVariables();
vars.action = "load leagues";
这也适用于对象(例如):
var obj:Object = new Object();
obj.view = 55;
但是,当我将语法更改为:
时,Flash Builder会喜欢它vars["action"] = "load leagues";
或
obj["view"] = 55;
该程序适用于两种语法,但我不确定为什么Flash Builder会对其进行警告。感谢。
答案 0 :(得分:2)
通过这种方式使用点语法:
vars.action = "load leagues";
您告诉Flex将“加载联赛”的值分配给对象“vars”上已存在的属性“action”。
以这种方式分配值时:
vars["action"] = "load leagues";
您告诉Flex将“加载联赛”的值分配给对象“vars”上的属性“action”。但是,如果属性“action”尚不存在,请创建它,然后将值赋给它。如果属性“action”已经存在,那么它告诉Flex简单地将其值重新分配给“加载联盟”。
您的Flex SDK可能只是警告您尚未在对象上正确创建该属性,但它会为您执行此操作。我知道这很令人困惑,但重要的是尝试将事物编码为防弹,因此最好是明确添加属性,或者使用[]方法在运行中创建它如果它还没有出现。