应用IMXMLObject自定义功能性组件

在flex项目中,应用到非显示的功能性组件,一种方法是直接定义actionScript类。另外一种方法是实现IMXMLObject接口。实现IMXMLObject接口的好处,是可以直接调用功能函数。

IMXMLObject中的方法function initialized(document:Object, id:String):void,在IMXMLObject置入MXML时被直接调用,类似于触发了initialized事件。如以下示例:

TempCom.as

package  component {

    import flash.display.Shape;
    
import mx.core.IMXMLObject;
    
    
public class TempCom implements IMXMLObject{
        
public var id:String="tempCom";
        
public var rect:Shape;
        
        
public var paramOne:String="paramOne";
        
public var paramTwo:String="paramTwo";
      

        
public function executSome(para1:String,para2:String):void{
            trace("para1:->"+para1,"para2:->"+para2,"from executSome");
        }
        
public function initialized(document:Object, id:String):void
        {
            rect=createShape();
            executSome(paramOne,paramTwo);
        }
        
private function createShape():Shape{
            var rect:Shape=new Shape;
            rect.graphics.beginFill(0xffccff);
            rect.graphics.drawRect(0,0,100,100);
            rect.graphics.endFill();
            
return rect;
        }
   
 }
}

MainApp.mxml

<? 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"  
               xmlns:com
="component.*"
               xmlns:mxmlCom
="mxmlCom.*"
               minWidth
="955"  minHeight ="600"
               creationComplete
="application1_creationCompleteHandler(event)" >
    
< fx:Script >
        
<![CDATA[
            import mx.events.FlexEvent;
            protected function application1_creationCompleteHandler(event:FlexEvent):void
            {
                container.addChild(tempCom.rect);
            }
            
        
]]>
    
</ fx:Script >
    
< fx:Declarations >
        
< com:TempCom   id ="tempCom"  paramOne ="aaa"  paramTwo ="bbbb" />
    
</ fx:Declarations >
    
< mx:UIComponent  id ="container" />

</s:Application>  


运行结果会显示出一个正方形,并输出:" para1:->aaa para2:->bbbb from executSome ".

转载于:https://www.cnblogs.com/fxair/archive/2011/07/22/2114050.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值