這是一個小小的進步

<?xml version="1.0"?>
<Application xmlns="http://www.adobe.com/2006/mxml"
        backgroundColor="white" fontSize="12" creationComplete="initApp()" layout="absolute" xmlns:objecthandles="com.roguedevelopment.objecthandles.*"
        cornerRadius="2" backgroundGradientAlphas="[0.78, 0.78]">
    <Style>
        Canvas{
			font-family:EmbeddedBase01;
        }
        Alert{
            background-color:#eeafff;
            alternating-item-colors:red;
            stroke-color:#FFFFFF;
        }
    </Style>
    <Script>
        <![CDATA[
        	import com.adobe.serialization.json.*;  
	        import mx.core.UITextField;
	        import mx.controls.Label;
	        import mx.messaging.AbstractConsumer;
	        import mx.automation.delegates.controls.TextInputAutomationImpl;
	        import mx.events.ListEvent;
	        import flash.events.TextEvent;
	        import mx.containers.Panel;
	  		import mx.events.ColorPickerEvent;
	   		import mx.controls.Alert;
	  		import flash.events.MouseEvent;
		    import mx.events.NumericStepperEvent;
		    import mx.events.MoveEvent;
		    import mx.controls.TextArea;
		    import mx.controls.Label;
		    import flash.external.*;
		    import mx.events.ResizeEvent;
			import mx.controls.Alert; 
			import mx.events.CloseEvent;
		 	internal function initApp():void {   
		    //供外部調用的事件
		    ExternalInterface.addCallback("setImageSize",setImageSize);
		    //添加標籤
		    ExternalInterface.addCallback("addControl",addControl);
		    //刪除標籤
		    ExternalInterface.addCallback("deleteControl",deleteControl);
		    //改變顏色(1-7)
		    ExternalInterface.addCallback("setColor",setColor);
		    //編輯文本
		    ExternalInterface.addCallback("setText",setText);
		    //設置字體樣式
		    ExternalInterface.addCallback("setFontFamily",setFontFamily);
		    ExternalInterface.addCallback("setFontBold",setFontBold);
		    ExternalInterface.addCallback("setFontItalic",setFontItalic);
		    ExternalInterface.addCallback("setFontUnderline",setFontUnderline);
		    ExternalInterface.addCallback("setFontSize",setFontSize);
		    //設置文件對齊方式
		    ExternalInterface.addCallback("setAlignLeft",setAlignLeft);
		    ExternalInterface.addCallback("setAlignRight",setAlignRight);
		    ExternalInterface.addCallback("setAlignCenter",setAlignCenter);
		    //設置背景圖片
		    ExternalInterface.addCallback("setBackgroundImage",setBackgroundImage);
		    //獲取Label
		    ExternalInterface.addCallback("getInfo",getInfo);
		    getAllLabel();
		    }
		    //改變內容
		    public  function setText(str:String):void {
				lab_obj.text=str;
		    }
		    //獲取以存儲Label
		    private function getAllLabel():void {
				var resultStr:String=ExternalInterface.call("GetAllLabel");
		    	var array:Array=JSON.decode(resultStr);
		    	//調用回綁方法
				goBackAllLabel(array);
		    }
		    //回綁label標籤
		    public function goBackAllLabel(array:Array):void {
		    	//遍歷中所有的Label
		    	for each(var label:Object in array){
	    	        var obj:ObjectHandles=new ObjectHandles();
	    	        var labelModel:Label=new Label(); 
	    	        obj.x=label.x;
	    	        obj.y=label.y;
	    	        labelModel.width=label.width;
	    	        labelModel.height=label.height;
	    	        labelModel.setStyle("fontSize",label.fontSize);
	    	        labelModel.setStyle("fontFamily",label.fontStyle);
	    	        labelModel.setStyle("textAlign",label.textAlign);
	    	        labelModel.setStyle("textDecoration",label.textDecoration);
	    	        labelModel.setStyle("color",label.color);
	    	        labelModel.text=label.text; 
	    	        //顯示原來的label 
					obj.addChild(labelModel); 
					obj.addEventListener(ResizeEvent.RESIZE,setChildWidth);          
					canvas.addChild(obj); 
		    	}
		    }
		    //設置字體類型
		    public function setFontFamily(fontName:String):void{
		        lab_obj.setStyle("fontFamily", fontName);
		    }
		    //設置粗體
		    public function setFontBold():void {
				switch (lab_obj.getStyle("fontFamily")) 
				{ 
					case "EmbeddedBase04B": 
				        lab_obj.setStyle("fontFamily","EmbeddedBase04");
				        break; 
					case "EmbeddedBase04": 
				        lab_obj.setStyle("fontFamily","EmbeddedBase04B");
				        break;    
				}  
		    }
		    //設置斜體
		    public function setFontItalic():void {
				if(lab_obj.getStyle("fontStyle")=="italic")
			   	{
					lab_obj.setStyle("fontStyle", "normal");
			   	} 
			  	else {
			   		lab_obj.setStyle("fontStyle", "italic"); 
			  	} 
		    } 
		    //是否有下劃線
		    public function setFontUnderline():void {
				if(lab_obj.getStyle("textDecoration")=="none")
				{
					lab_obj.setStyle("textDecoration","underline");
				} 
				else{
					lab_obj.setStyle("textDecoration","none"); 
				} 
		    }
		    //是否居左
		    public function setAlignLeft():void {
				lab_obj.setStyle("textAlign","left");
		    }
		    //是否居右
		    public function setAlignRight():void {
				lab_obj.setStyle("textAlign","right");
		    }
		    //是否居中
		    public function setAlignCenter():void {
				lab_obj.setStyle("textAlign","center");
		    }
	   		//設置字體
			[Embed(source="font/trebuc.TTF",
				fontName="EmbeddedBase01",
				mimeType="application/x-font")]
            private var EmbeddedBase01:Class;
            [Embed(source="font/Discipuli Britannica Bold.ttf",
				fontName="EmbeddedBase04B",
				mimeType="application/x-font")]
            private var EmbeddedBase04B:Class;
            [Embed(source="font/youarewhatyoueat.ttf",
				fontName="EmbeddedBase02",
				mimeType="application/x-font")]
            private var EmbeddedBase02:Class;
            [Embed(source="font/verdana.TTF",
				fontName="EmbeddedBase03",
				mimeType="application/x-font")]
            private var EmbeddedBase03:Class;
            [Embed(source="font/Discipuli Britannica.ttf",
				fontName="EmbeddedBase04",
				mimeType="application/x-font")]
            private var EmbeddedBase04:Class;
    		//設置背景圖
    		[Embed(source="image/30.jpg")]
    		[Bindable]
            private var Image:String;
            //設置顏色
            public function setColor(col:String):void {
				lab_obj.setStyle("color",col);
            }
            //字體大小處理
            private function setFontSize(fontSize:Number):void {
				lab_obj.setStyle("fontSize",fontSize);
            }
            //聲明一個label變量
			public var lab_obj:Label;
			//添加一個標籤  
			public function addControl():void{
				var obj:ObjectHandles=new ObjectHandles();
				obj.id="Obj"+Math.ceil(Math.random()*100);
				var lab:Label=new Label();
				//砃敃怢奻氝樓偌聽  
				obj.addChild(lab); 
				obj.addEventListener(ResizeEvent.RESIZE,setChildWidth);          
				canvas.addChild(obj);
				//覃淕偌聽腔弇离
				lab.x=0;
				lab.y=0;
				lab.id="lab"+Math.ceil(Math.random()*100);
				lab.text="Label";
				lab_obj=null;
			}
			//執行刪除操作
			public  function deleteControl():void {
                if(lab_obj!=null){
                   showAlert();
                }else{
                   Alert.show("請先擇對象!");
                }
			}
            //角本提示
            private var alert:Alert;  
            private function showAlert():void { 
                var text:String = "你確定刪除!"; 
                var title:String = "標示";  
                alert = Alert.show(text, title, Alert.YES | Alert.NO); 
                alert.addEventListener(CloseEvent.CLOSE, alert_close);  
            }  
            private function alert_close(evt:CloseEvent):void { 
                switch (evt.detail) 
                { 
                    case Alert.YES: 
                        canvas.removeChild(lab_obj.parent);
                        lab_obj=null;
                        break; 
                } 
            } 

			//褫眕扢离迍嶺湮苤 
			private function setChildWidth(event:ResizeEvent):void{
                //設置寬度
		        lab_obj.width=event.target.width;
			}
			//獲取當前活動的對象
			private function over(event : MouseEvent):void {
		        var x : Number = mouseX;
                var y : Number = mouseY;
                var arr : Array = getObjectsUnderPoint(new Point(x,y));
                for each (var temp : Object in arr) {
                    if(temp.parent as Label) {
                        //提取當前控件
                        lab_obj=new Label();
                        lab_obj=temp.parent as Label;
                        //為界面賦值
                        ExternalInterface.call("setTextContext",lab_obj.text);
                    }
                }
			}
			
			//執行調用外部方法
			public function setBackgroundImage(url:String):void {
				canvas.setStyle("backgroundImage",url);
			}
			//設置圖片大小
			public function setImageSize(strWidth:Number,strHeigth:Number):void {
				//設置圖片的寬和高
				Application.application.width=strWidth;
				Application.application.height=strHeigth; 
				canvas.width=strWidth;
				canvas.height=strHeigth;
			}
			//本方法供外部javaScript調用內部信息
			public function getInfo():String {
				//讀取容器中的所有label對象
				var contorlArray:Array=canvas.getChildren();
				var labContorl:Label;//標籤暫時儲存變量
				var str:String="";
				if(contorlArray!=null)
				{
					for each (var temp : Object in contorlArray)
					{
						if(temp as ObjectHandles)
						{
							 var Obj:ObjectHandles=temp as ObjectHandles;
							 var arryChild:Array=Obj.getChildren();
							 for each(var tempChild : Object in arryChild){
							    if(tempChild as Label)
							    {
							    	labContorl=new Label();
								    labContorl=tempChild as Label;
								    //自定義一個類型
		                            var labobj:objectmodel=new objectmodel();
		                            //提取當前控件
		                            labobj.id=labContorl.id;
		                            labobj.x=labContorl.parent.x;
		                            labobj.y=labContorl.parent.y;
		                            labobj.text=labContorl.text;
		                            labobj.fontStyle=labContorl.getStyle("fontFamily");
									labobj.fontSize=labContorl.getStyle("fontSize");
									labobj.textAlign=labContorl.getStyle("textAlign");
									labobj.textDecoration=labContorl.getStyle("textDecoration");
									labobj.color=labContorl.getStyle("color");
									labobj.isBold=labContorl.getStyle("fontWeight")=="Bold" ? "true":"false";
				                    labobj.isItalic=labContorl.getStyle("fontStyle")=="italic"? "ture":"false";
									labobj.width=labContorl.width;
									labobj.height=labContorl.height;
		                            //進行序列化
		                            if(str==""){
										str="["+JSON.encode(labobj);
		                            }else{
										str+=","+JSON.encode(labobj);
		                            }
							    }
							 }
						} 
					}
					return str+"]";
				}
				else
				{
				    return "";
				} 
			}
        ]]>
    </Script>
       <Canvas id="canvas" backgroundImage="{Image}" width="600" height="600" horizontalScrollPolicy="auto" verticalScrollPolicy="auto" mouseDown="over(event)" maxHeight="300" maxWidth="300" y="0" x="0">
       <objecthandles:ObjectHandles id="obh" resize="setChildWidth(event);" autoLayout="true">
	   </objecthandles:ObjectHandles>
       </Canvas>
</Application>
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值