在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>
这样就能获取得到了。大家试试很有用的一个功能,相信大家在开发中一定用得上!

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐