如何获得mxml中定义的对象,并设置visible属性
mxml里load两个swf。如果在init方法里想获得这两个swf对象,并设置其中一个visible属性为true。如果处理呢?
- XML code
<?xml version="1.0" encoding="utf-8"?><s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" initialize="" applicationComplete="init();"> <s:layout> <s:BasicLayout/> </s:layout> <fx:Declarations> <!-- 将非可视元素(例如服务、值对象)放在此处 --> </fx:Declarations> <mx:SWFLoader id="center01" source="image/AlarmSample.swf" x="870" y="250" visible="false"/> <mx:SWFLoader id="center02" source="image/AlarmSample.swf" x="1000" y="385" visible="false"/> <fx:Script> <![CDATA[ import mx.collections.ArrayCollection; var data:ArrayCollection=new ArrayCollection([ ]); private function init(centerid:String,arvrtime:int):void{ } ]]> </fx:Script></s:Application>[解决办法]
this["center01"]这种方法可以,个人感觉它延承了JS方式
也可以借助自身的API实现
(swf.content as DisplayObject).visible = true;
[解决办法]
在mxml文件里,id属性名不就是实例名吗,用center01或者this.center01都可以获得这个对象的一个实例,相当于java中的new的作用。再用center01.属性名=""设置它的属性,比如:center01.visible=false;this.center01.visibe=true都可以啊。