1.7.设置子节点属性

1.7.1.问题
我想通过MXML中的script标签内容的某个方法来设置子节点属性。
1.7.2.解决办法
通过id属性查找子节点组件,并使用id属性调用方法。
1.7.3.讨论
人们很容易把组件的脚本代码部分与mxml部分分割开来看,但实际上它们是一体的,例如下面的例子:
+展开
-XML
<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxmlwidth="400height="300">
<mx:Script>
<![CDATA[
private function changeAppearance():void {
this.width = Number(widthInputField.text);
this.height = Number(heightInputField.text);
}

]]>
</mx:Script>
<mx:Image id="imageDisplay"/>
<mx:Text text="Enter a width"/>
<mx:TextInput id="widthInputField"/>
<mx:Text text="Enter an height"/>
<mx:TextInput id="heightInputField"/>
<mx:Button click="changeAppearance()label="Change Size"/>
</mx:HBox>

正如你所看到的,在changeAppearance方法中,this变量指向组件本身,即包含所有子节点组件的HBox , 用于改变组件的宽度和高度。通过参照两个输入框widthInputField 和heightInputField中的内容。每个输入框都是通过id属性进行引用,这跟在Document Object Model (DOM) 脚本中通过id引用是一样的。在整个程序中Id值必须是唯一的,可用于指向单级层次结构内部一个组件而不管组件之间的嵌套关系:
+展开
-XML
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxmlwidth="520height="650">
<mx:Script>
<![CDATA[
private var fileName:String = "";
private function saveResume():void{
//....a service call to send the data and set the filename
 fileNameDisplay.text = "Your resume has been saved as"+fileName;
}

]]>
</mx:Script>
<mx:Text id="fileNameDisplaytext="width="500"/>
<mx:RichTextEditor id="richTextControlwidth="500height="400"/>
<mx:Button id="labelButtonlabel="Submit Resumeclick="saveResume()"/>
</mx:VBox>

上面的例子中,通过id属性来引用子节点组件并通过id设置其属性值,MXML中的所有添加进来的组件默认下都是可视的,父组件都可以访问到它们。

加支付宝好友偷能量挖...


评论(0)网络
阅读(72)喜欢(0)flash/flex/fcs/AIR