Apache flex flex 4.6在作为变量传递给函数时访问对象ID
flex 4.6 我想知道如何使用传递给函数的var访问/更改对象,例如,如果我有idApache flex flex 4.6在作为变量传递给函数时访问对象ID,apache-flex,variables,actionscript,mxml,Apache Flex,Variables,Actionscript,Mxml,flex 4.6 我想知道如何使用传递给函数的var访问/更改对象,例如,如果我有idvg1Text,使用 Application.application.vg1Text.text = txt2chg+":"+id2chg; 工作但是 Application.application.id2chg.text = txt2chg+":"+id2chg; 失败于 ReferenceError:Error#1069:Property id2chg找不到 thx艺术 模块 public functio
vg1Text
,使用
Application.application.vg1Text.text = txt2chg+":"+id2chg;
工作但是
Application.application.id2chg.text = txt2chg+":"+id2chg;
失败于
ReferenceError:Error#1069:Property id2chg找不到
thx艺术
模块
public function chgFuncB1(txt2chg, id2chg):void {
Application.application.id2chg.text = txt2chg+":"+id2chg;
}
public function myFunc() : void{
chgFuncB1("New Text", "vg1Text");
}
主要应用
<s:VGroup id="vg1">
<s:Label id="vg1Text" text="Module loaded in Spark VGroup container:"/>
</s:VGroup>
要实现这一点,可以使用数组表示法(希望这是正确的名称)。这样,变量
id2chg
中包含的字符串就可以用作属性名
public function chgFuncB1(txt2chg:String, id2chg:String):void {
Application.application[id2chg].text = txt2chg+":"+id2chg;
}
Thx@Sunil我认为问题在于,当代码运行时,它将id2chg视为对象名而不是要替换的变量,或者如果它是本地变量,它将返回NULL,不是吗?这是正确的,语句
Application.Application.id2chg.text
上没有变量替换或替换。为了使该行有意义,您需要在主应用程序中有一个id为“idc2chg”的对象(或在该名称的脚本块中声明的变量)。让我编辑我的答案,我刚刚意识到你想做什么…好吧,那应该行得通。。。我有点糊涂,只是被错误缠住了:)一点也不糊涂,对同一个问题有很多观点,谢谢你的快速反应。艺术