在flex4中有时候需要在as中获取其他组件的信息,这时候就需要用到下面的方法,很实用:
比如:FlexGlobals.topLevelApplication.任意组件ID.text="我来更改你的文本了"; ----(Flex4写法)
Application.application.任意组件ID.text = "Hello!傻人啊"; -----(Flex3写法)
?
具体参见此文章:
想必大家在获取index.mxml主容器里面的某个ID获取不到而烦吧。因为ID只能在当前页面使用,在另个页面是用不了的,今天就出这个教程帮大家解决问题。
请看例子
这个是主应用程序index.mxml,现在我是要获取myLabID
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:ns1="comps.*">
??? <ns1:inBox x="10" y="115" height="240" width="359">
??? </ns1:inBox>
??? <mx:Label x="130.5" y="48" text="Watch me." fontSize="20" id="myLab"/>
????
</mx:Application>
好自定义组件获取myLabID。
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="200" height="50" creationComplete="init()">
????
??? <mx:Button x="111.5" y="162" id="myBUT" label="Set Label" fontSize="20"/>
??? <mx:Script>
??????? <![CDATA[
??????????? import mx.core.Application;??????????????
??????????? public function init():void{
????????????????
??????????????? myBUT.addEventListener(MouseEvent.CLICK,onClick);????????????????
??????????? }
??????????? public function onClick(e:MouseEvent):void{
??????????????? Application.application.myLab.text = "Hello!傻牛牛."; ??????????????? //Application.application.myLab.addChild(); ???????????????? ??????????? } ??????? ]]> ??? </mx:Script> </mx:Canvas> 这样就能获取得到了。大家试试很有用的一个功能,相信大家在开发中一定用得上!