亚洲综合网美国十次,亚洲欧洲日韩极速播放,亚洲AV无码一区二区三区在线观看http://www.tkk7.com/plandu/category/52823.htmlzh-cnSat, 10 Nov 2012 00:02:15 GMTSat, 10 Nov 2012 00:02:15 GMT60調(diào)整組件z軸坐標(biāo)http://www.tkk7.com/plandu/archive/2012/11/09/391107.html誰(shuí)用我名字啦?誰(shuí)用我名字啦?Fri, 09 Nov 2012 08:54:00 GMThttp://www.tkk7.com/plandu/archive/2012/11/09/391107.htmlhttp://www.tkk7.com/plandu/comments/391107.htmlhttp://www.tkk7.com/plandu/archive/2012/11/09/391107.html#Feedback0http://www.tkk7.com/plandu/comments/commentRss/391107.htmlhttp://www.tkk7.com/plandu/services/trackbacks/391107.htmlcav1.setChildIndex(event.currentTarget as DisplayObject, cav1.numChildren - 1);

參數(shù)一:cav1為容器,event.currentTarget 是容器中的一個(gè)組件,而as DisplayObject可能是因?yàn)槿萜髦械慕M件式spark的,而容器式mx的,所以需要轉(zhuǎn)換一下。

參數(shù)而:cav1.numChildren - 1的值越小,該組件就越接近最上面。

]]>
使組件可以拖動(dòng)的startDrag和stopDraghttp://www.tkk7.com/plandu/archive/2012/11/09/391105.html誰(shuí)用我名字啦?誰(shuí)用我名字啦?Fri, 09 Nov 2012 08:48:00 GMThttp://www.tkk7.com/plandu/archive/2012/11/09/391105.htmlhttp://www.tkk7.com/plandu/comments/391105.htmlhttp://www.tkk7.com/plandu/archive/2012/11/09/391105.html#Feedback0http://www.tkk7.com/plandu/comments/commentRss/391105.htmlhttp://www.tkk7.com/plandu/services/trackbacks/391105.html1.普通組件的拖動(dòng):

    添加mouseDown和mouseUp事件,在down事件中寫入startDrag(),在up事件中寫入stopDrag()

2.spark的Panel組件的拖動(dòng):

    添加id為pan,添加pan.titleDisplay.mouseDown和pan.titleDisplay.mouseUp事件如下,然后分別在down和up事件中寫入startDrag()和stopDrag()

    pan.titleDisplay.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
    pan.titleDisplay.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);

]]>
FusionCharts基于flex的圖表組件http://www.tkk7.com/plandu/archive/2012/10/24/390178.html誰(shuí)用我名字啦?誰(shuí)用我名字啦?Wed, 24 Oct 2012 08:57:00 GMThttp://www.tkk7.com/plandu/archive/2012/10/24/390178.htmlhttp://www.tkk7.com/plandu/comments/390178.htmlhttp://www.tkk7.com/plandu/archive/2012/10/24/390178.html#Feedback0http://www.tkk7.com/plandu/comments/commentRss/390178.htmlhttp://www.tkk7.com/plandu/services/trackbacks/390178.html
首先來(lái)個(gè)介紹:http://baike.baidu.com/view/2153728.htm,F(xiàn)usionCharts是一個(gè)非常之方便能夠動(dòng)態(tài)生成多樣化圖表的組件。

網(wǎng)上對(duì)于FusionCharts的資料不是很多,而大部分都只是官方英文的,對(duì)于我這種英文白癡很是頭疼。下面將自己的使用心得分享并留作以后的查閱。內(nèi)容不多,但絕對(duì)實(shí)用!

路徑結(jié)構(gòu)
    1.Gallery 自帶的圖表示例,非常全面

創(chuàng)建圖表
    下例中在項(xiàng)目下新建FusionCharts路徑,存放圖表所需的swf、js文件


    1.在Charts路徑下復(fù)制swf文件到FusionCharts路徑。FusionCharts提供了2D、3D、地理、天氣等多種SWF文件,可以根據(jù)使用情況選擇。下例中使用3D圖表Column3D.swf

    2.在SourceCode\JavaScript\Legacy路徑下復(fù)制FusionCharts.js腳本文件到FusionCharts路徑

    3.在FusionCharts路徑下創(chuàng)建xml數(shù)據(jù)文件Data.xml

<chart yAxisName="Sales Figure" caption="Top 5 Sales Person"
    numberPrefix
="$" showBorder="1" imageSave="1">
   
<set label="Alex" value="25000"  />
   
<set label="Mark" value="35000" />
   
<set label="David" value="42300" />
   
<set label="Graham" value="35300" />
   
<set label="John" value="31300" />
</chart>

    4.編寫index.html測(cè)試代碼

<html>
   
<head>
       
<title>My First chart using FusionCharts XT</title>
       
<script type="text/javascript" src="FusionCharts/FusionCharts.js"></script> //引入的FunsionCharts腳本
   
</head>
   
<body>
       
<div id="chartContainer">
            FusionCharts XT will load here!
       
</div>
       
<script type="text/javascript">
       
<!--
           
var myChart = new FusionCharts( "FusionCharts/Column3D.swf"//設(shè)置swf文件路徑
                   
"myChartId", "400", "300", "0", "1" );
            myChart.setXMLUrl(
"FusionCharts/Data.xml"); //設(shè)置xml文件路徑
            myChart.render(
"chartContainer"); //顯示圖表的容器ID,上面的div
       
// -->
        </script>
   
</body>
</html>

    5.運(yùn)行index.html,你將看到如下結(jié)果


如何使用配置參數(shù)
    參數(shù)可以到百度搜索,有比較全面的中文介紹。
    
    在Gallery 路徑下有很多例子供參考。而FusionCharts的參數(shù)設(shè)置都是在數(shù)據(jù)文件xml中完成,就是上例中的數(shù)據(jù)源Data.xml,在不同的標(biāo)簽中寫入相應(yīng)的屬性及參數(shù)既能得到不同的效果,參數(shù)大致包括圖表樣式的修改、文字樣式、數(shù)值顯示方式、動(dòng)態(tài)效果等。(參數(shù)中的布爾值用1或0代替true或false)

動(dòng)態(tài)XML數(shù)據(jù)(重點(diǎn))
    上例中給出的是靜態(tài)的XML文件,對(duì)于項(xiàng)目來(lái)說(shuō)數(shù)據(jù)往往是由后臺(tái)動(dòng)態(tài)生成的。那么如何使用動(dòng)態(tài)數(shù)據(jù)呢,例子如下:

    使用jquery ajax異步調(diào)用動(dòng)態(tài)xml數(shù)據(jù)并展示

    js代碼,不必理會(huì)其他部分,注意:
        
        1.dataType : 'text'請(qǐng)求的返回?cái)?shù)據(jù)類型一定是'text'字符串文本類型FusionCharts才能識(shí)別,json、xml格式都不可以。但返回的字符串必須是標(biāo)準(zhǔn)的xml格式,至于字符串形式的json格式是否能夠識(shí)別我沒(méi)有測(cè)試。
         (苦于英文不好,所以我在這里調(diào)試了1個(gè)多小時(shí),因?yàn)镕usionCharts能夠接收json、xml形式的靜態(tài)數(shù)據(jù)源,所以一直沒(méi)有想到在動(dòng)態(tài)賦值只能接收字符串形式的數(shù)據(jù)源)

        2.chart.setDataXML(data),對(duì)于動(dòng)態(tài)數(shù)據(jù)源不能使用上例中的setXMLUrl()方法。

$.ajax( {
        type : 'POST',
        contentType:
"application/json; charset=utf-8"
        url : 'year.action',
        data : parameters,
        dataType : 'text',

        success :
function(data) {
           
var chart = new FusionCharts("js/compare/MSColumn3D.swf", "ChartId", "560", "400", "0", "0");
            chart.setDataXML(data);
            chart.render(
"chartContainer");
        },

        error :
function(xhr) {
            alert('頁(yè)出錯(cuò)\n\r'
+ xhr.responseText);
        }
    });

        3.數(shù)據(jù)源格式


    待續(xù)……

這里有英文的API和一些FAQ提示,英語(yǔ)好的可以看看:

http://kb.fusioncharts.com/questions/426/What+is+FusionCharts+JavaScript+API%3F


]]>
綁定自定義屬性——[bindable]和事件http://www.tkk7.com/plandu/archive/2012/10/20/389923.html誰(shuí)用我名字啦?誰(shuí)用我名字啦?Sat, 20 Oct 2012 07:00:00 GMThttp://www.tkk7.com/plandu/archive/2012/10/20/389923.htmlhttp://www.tkk7.com/plandu/comments/389923.htmlhttp://www.tkk7.com/plandu/archive/2012/10/20/389923.html#Feedback0http://www.tkk7.com/plandu/comments/commentRss/389923.htmlhttp://www.tkk7.com/plandu/services/trackbacks/389923.html
<?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">
    
<fx:Declarations>
        
<!-- 將非可視元素(例如服務(wù)、值對(duì)象)放在此處 -->
    
</fx:Declarations>
    
<fx:Script>
        
<![CDATA[
            
            
//綁定屬性
            [Bindable]
            
private var _product:String;
            
            
//在set方法中創(chuàng)建屬性更新事件,并觸發(fā)該事件,以通知Flex屬性被更新
            public function set product(value:String):void
            {
                _product 
= value;
                dispatchEvent(
new Event("productChanged"));
            }
            
            
//在get方法聲明前,加入[Binndable]元素定義屬性綁定。這樣,當(dāng)觸發(fā)屬性更新事件是,
            
//Flex將會(huì)修改對(duì)應(yīng)的屬性
            
            
//沒(méi)弄明白這個(gè)綁定事件在什么情況下能用到.
            [Bindable(event="productChanged")]
            
public function get product():String
            {
                
return _product;
            }

        ]]
>
    
</fx:Script>
</s:Application>


]]>
圖形拖動(dòng)(二)Sprite方式http://www.tkk7.com/plandu/archive/2012/10/20/389920.html誰(shuí)用我名字啦?誰(shuí)用我名字啦?Sat, 20 Oct 2012 06:41:00 GMThttp://www.tkk7.com/plandu/archive/2012/10/20/389920.htmlhttp://www.tkk7.com/plandu/comments/389920.htmlhttp://www.tkk7.com/plandu/archive/2012/10/20/389920.html#Feedback0http://www.tkk7.com/plandu/comments/commentRss/389920.htmlhttp://www.tkk7.com/plandu/services/trackbacks/389920.html
package
{
    
import flash.display.Sprite;
    
import flash.display.Shape;
    
import flash.events.Event;
    
import flash.events.MouseEvent;
    
    
public class dashias extends Sprite
    {
        
private var mySprite1:Sprite = new Sprite();
        
private var mySprite2:Sprite = new Sprite();
        
        
public function dashias()
        {
            
//畫圓
            var circle:Shape = new Shape();
            circle.graphics.lineStyle(
00x7B7B7B); //方法簽名: lineStyle(thickness, color)
            circle.graphics.beginFill(0xFF0000);
            circle.graphics.drawCircle(
0020);
            circle.graphics.endFill();
            
            
//吧circle對(duì)象加入到舞臺(tái)中
            mySprite1.addChild(circle);
            
this.addChild(mySprite1); //吧circle對(duì)象加入到舞臺(tái)中,this指stage
            mySprite1.x = 100//設(shè)置顯示列表構(gòu)造對(duì)象mySprite的x坐標(biāo)為100
            mySprite1.y = 100//設(shè)置顯示列表構(gòu)造對(duì)象mySprite的y坐標(biāo)為100
            
            
//畫線
            var line:Shape = new Shape();
            line.graphics.lineStyle(
40x00FF00);
            line.graphics.lineTo(
2020);
            line.graphics.endFill();
            line.x 
= 0;
            line.y 
= 0;
            
            mySprite2.addChild(line);
            
this.addChild(mySprite2);
            mySprite2.x 
= 100;
            mySprite2.y 
= 100;
            
            
//添加監(jiān)聽事件
            
//ENTER_FRAME事件一位置Flash播放頭進(jìn)入新的一幀,此時(shí)調(diào)用rotateRectObject偵聽器
            mySprite2.addEventListener(Event.ENTER_FRAME, rotateRectObject);
            
            
//實(shí)現(xiàn)對(duì)mySprite1的拖拽
            mySprite1.addEventListener(MouseEvent.MOUSE_UP, mouseReleased);
            mySprite1.addEventListener(MouseEvent.MOUSE_DOWN, mouseDown);
            
            
//在mySprite1這個(gè)顯示列表基本構(gòu)造元素上顯示手型鼠標(biāo)光標(biāo)
            mySprite1.buttonMode = true;
            mySprite1.useHandCursor 
= true;
        }
        
        function rotateRectObject(evt:Event):
void {
            
//rotation si a property to rotate the respective object
            mySprite2.rotation += 1;
        }
        
        function mouseDown(event:MouseEvent):
void {
            mySprite1.startDrag();
        }
        
        function mouseReleased(event:MouseEvent):
void {
            mySprite1.stopDrag();
        }
    }
}


]]>
圖形拖動(dòng)(一)副本的方式http://www.tkk7.com/plandu/archive/2012/10/20/389919.html誰(shuí)用我名字啦?誰(shuí)用我名字啦?Sat, 20 Oct 2012 06:40:00 GMThttp://www.tkk7.com/plandu/archive/2012/10/20/389919.htmlhttp://www.tkk7.com/plandu/comments/389919.htmlhttp://www.tkk7.com/plandu/archive/2012/10/20/389919.html#Feedback0http://www.tkk7.com/plandu/comments/commentRss/389919.htmlhttp://www.tkk7.com/plandu/services/trackbacks/389919.html<?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">
    
<fx:Script>
        
<![CDATA[
            import mx.controls.*;
            import mx.core.IVisualElement;
            import mx.core.UIComponent;
            import mx.graphics.ImageSnapshot;  
            
            [Embed(source="E:/flex/45.png")]
            [Bindable]
            private var bookImage:Class;
            
            public var uiComponent:Object;
            public var targetImage:Object;
            public var Ax:int = 0;
            public var Ay:int = 0;
            public function mouseDown(event:MouseEvent):void{
                //在原地生成圖片副本,然后將移動(dòng)圖片。  
                this.uiComponent = event.currentTarget;
                //生成圖片  
                var bd:BitmapData = ImageSnapshot.captureBitmapData( UIComponent( uiComponent ) );  
                targetImage = new Image();   
                targetImage.source = new Bitmap(bd);  
                targetImage.x = uiComponent.x;  
                targetImage.y = uiComponent.y;  
                Ax = event.localX;  
                Ay = event.localY;  
                this.addEventListener(MouseEvent.MOUSE_MOVE, mouseMove);  
                this.addEventListener(MouseEvent.MOUSE_UP, mouseUp);
                this.addElement(targetImage as IVisualElement);// as DisplayObject
            }  
            
            public function mouseMove(event:MouseEvent):void{  
                targetImage.x = event.stageX-Ax;  
                targetImage.y = event.stageY-Ay;  
            }  
            
            public function mouseUp(event:MouseEvent):void{  
                this.removeEventListener(MouseEvent.MOUSE_MOVE, mouseMove);  
                this.removeEventListener(MouseEvent.MOUSE_UP, mouseUp);  
                
                //當(dāng)鼠標(biāo)移動(dòng)到預(yù)定位置,將圖片刪除,并且移動(dòng)源控件。  
                uiComponent.x = event.stageX-Ax;  
                uiComponent.y = event.stageY-Ay;  
                this.removeElement(targetImage as IVisualElement);  
                targetImage = null;  
                
            }  
        
]]>
    
</fx:Script>
    
<mx:Image x="331" y="127" source="{bookImage}" mouseDown="mouseDown(event)"/>
    
</s:Application>


]]>
輔助理解“顯示列表(Display List)”的AS例子http://www.tkk7.com/plandu/archive/2012/10/19/389861.html誰(shuí)用我名字啦?誰(shuí)用我名字啦?Fri, 19 Oct 2012 03:04:00 GMThttp://www.tkk7.com/plandu/archive/2012/10/19/389861.htmlhttp://www.tkk7.com/plandu/comments/389861.htmlhttp://www.tkk7.com/plandu/archive/2012/10/19/389861.html#Feedback0http://www.tkk7.com/plandu/comments/commentRss/389861.htmlhttp://www.tkk7.com/plandu/services/trackbacks/389861.htmlpackage
{
    
import flash.display.Sprite;
    
import flash.display.Shape;
    
import flash.events.Event;
    
import flash.events.MouseEvent;
    
    
public class dashias extends Sprite
    {
        
private var mySprite1:Sprite = new Sprite();
        
private var mySprite2:Sprite = new Sprite();
        
        
public function dashias()
        {
            
//畫圓
            var circle:Shape = new Shape();
            circle.graphics.lineStyle(
00x7B7B7B); //方法簽名: lineStyle(thickness, color)
            circle.graphics.beginFill(0xFF0000);
            circle.graphics.drawCircle(
0020);
            circle.graphics.endFill();
            
            
//吧circle對(duì)象加入到舞臺(tái)中
            mySprite1.addChild(circle);
            
this.addChild(mySprite1); //吧circle對(duì)象加入到舞臺(tái)中,this指stage
            mySprite1.x = 100//設(shè)置顯示列表構(gòu)造對(duì)象mySprite的x坐標(biāo)為100
            mySprite1.y = 100//設(shè)置顯示列表構(gòu)造對(duì)象mySprite的y坐標(biāo)為100
            
            
//畫線
            var line:Shape = new Shape();
            line.graphics.lineStyle(
40x00FF00);
            line.graphics.lineTo(
2020);
            line.graphics.endFill();
            line.x 
= 0;
            line.y 
= 0;
            
            mySprite2.addChild(line);
            
this.addChild(mySprite2);
            mySprite2.x 
= 100;
            mySprite2.y 
= 100;
            
            
//添加監(jiān)聽事件
            
//ENTER_FRAME事件一位置Flash播放頭進(jìn)入新的一幀,此時(shí)調(diào)用rotateRectObject偵聽器
            mySprite2.addEventListener(Event.ENTER_FRAME, rotateRectObject);
            
            
//實(shí)現(xiàn)對(duì)mySprite1的拖拽
            mySprite1.addEventListener(MouseEvent.MOUSE_UP, mouseReleased);
            mySprite1.addEventListener(MouseEvent.MOUSE_DOWN, mouseDown);
            
            
//在mySprite1這個(gè)顯示列表基本構(gòu)造元素上顯示手型鼠標(biāo)光標(biāo)
            mySprite1.buttonMode = true;
            mySprite1.useHandCursor 
= true;
        }
        
        function rotateRectObject(evt:Event):
void {
            
//rotation si a property to rotate the respective object
            mySprite2.rotation += 1;
        }
        
        function mouseDown(event:MouseEvent):
void {
            mySprite1.startDrag();
        }
        
        function mouseReleased(event:MouseEvent):
void {
            mySprite1.stopDrag();
        }
    }
}



]]>
MXML(一)在MXML中調(diào)用AcitionScript的方式http://www.tkk7.com/plandu/archive/2012/10/18/389820.html誰(shuí)用我名字啦?誰(shuí)用我名字啦?Thu, 18 Oct 2012 07:14:00 GMThttp://www.tkk7.com/plandu/archive/2012/10/18/389820.htmlhttp://www.tkk7.com/plandu/comments/389820.htmlhttp://www.tkk7.com/plandu/archive/2012/10/18/389820.html#Feedback1http://www.tkk7.com/plandu/comments/commentRss/389820.htmlhttp://www.tkk7.com/plandu/services/trackbacks/389820.html
    1.內(nèi)聯(lián)方式

    內(nèi)聯(lián)方式,就是直接在MXML標(biāo)簽中編寫AS代碼。這種方式通常用來(lái)定義事件偵聽方法或者數(shù)據(jù)綁定。可以用分號(hào)(;)分隔多個(gè)AS語(yǔ)句例如:

<s:Button click="mx.controls.Alert.show('welcome');trace('welcome');"/>

    2.標(biāo)簽內(nèi)嵌代碼方式

<s:Button id="myButton" label="welcome">
        
<s:click>
            
<![CDATA[
                var greetWord:String = "welcome";
                mx.controls.Alert.show(greetWord);
                trace("DONE!");
            
]]>
        
</s:click>
</s:Button>


    3.使用Script表簽

<fx:Script>
        
<![CDATA[
            //ActionScript代碼
            
            import mx.controls.Alert;
            
            private function welcome():void() {
                Alert.show("歡迎");
            }
        
]]>
</fx:Script>

    4.使用<fx:Script>標(biāo)簽方式

    也可以通過(guò)在<fx:Script>標(biāo)簽中制定source屬性來(lái)引用外部ActionScript文件。

<fx:Script source="AS_name.as" />



]]>
flex事件(四)Flex自定義事件http://www.tkk7.com/plandu/archive/2012/10/18/389793.html誰(shuí)用我名字啦?誰(shuí)用我名字啦?Thu, 18 Oct 2012 02:30:00 GMThttp://www.tkk7.com/plandu/archive/2012/10/18/389793.htmlhttp://www.tkk7.com/plandu/comments/389793.htmlhttp://www.tkk7.com/plandu/archive/2012/10/18/389793.html#Feedback0http://www.tkk7.com/plandu/comments/commentRss/389793.htmlhttp://www.tkk7.com/plandu/services/trackbacks/389793.html  自定義事件只是一個(gè)"特別"的ActionScript類。開發(fā)者創(chuàng)建自定義事件無(wú)外乎完成如下幾個(gè)任務(wù):繼承flash.events.Event、定義事件屬性、編寫類構(gòu)造器、重載clone方法。

一 繼承Event帶參數(shù)自定義事件

  1.創(chuàng)建AS事件類SwitchLightEvent


  2.創(chuàng)建事件觸發(fā)組件LightConsole


  3.創(chuàng)建應(yīng)用CustomTraficLight



創(chuàng)建自定義事件5個(gè)步驟

1.使用ActionScript創(chuàng)建自定義事件  

  定義屬性
  開發(fā)者通常希望"消息"能夠攜帶更多的信息,提供更多的數(shù)據(jù)。在自定義事件中,通過(guò)定義屬性,可以讓事件攜帶更多的信息。


  編寫構(gòu)造器


  類當(dāng)然離不開構(gòu)造器。事件類的構(gòu)造器要完成兩項(xiàng)任務(wù)。

  (1). 調(diào)用Super()

  通過(guò)Super()調(diào)用父類的構(gòu)造器,以初始化從父類繼承的屬性等。通常情況下,子類構(gòu)造器應(yīng)該首先調(diào)用Super()方法。當(dāng)然,如果沒(méi)有為子類編寫構(gòu)造器(不添加構(gòu)造器方法),編譯器會(huì)自動(dòng)添加一個(gè)構(gòu)造器,并且也會(huì)調(diào)用Super()。但是,我們?nèi)匀煌扑]編寫構(gòu)造器,并且顯式地調(diào)用Super()方法。


  (2). 設(shè)置屬性


  事件類型是最常用到的事件屬性。Super()可以接受String類型的參數(shù),由此設(shè)置父類事件中繼承來(lái)的事件類型屬性(event.type)。

除了事件類型外,事件的其他自定義屬性可以作為構(gòu)造器的參數(shù)傳入,在構(gòu)造器中完成初始化。更靈活的是,這些屬性類型不僅僅局限于String、Number等基本類型,還可以是任何自定義類。


  重載clone方法


  創(chuàng)建自定義事件的最后一步是重載父類的clone方法,返回新的Event對(duì)象。當(dāng)觸發(fā)事件時(shí),即dispatchEvent(event)時(shí),EventDispatcher會(huì)自動(dòng)調(diào)用clone方法獲取新的Event對(duì)象。

重載clone方法將復(fù)制自定義類的所有屬性。如果你沒(méi)有對(duì)自定義事件類中添加的所有屬性進(jìn)行賦值的話,那么當(dāng)偵聽器處理觸發(fā)的自定義事件時(shí),就不會(huì)獲得正確的屬性值。

2.使用元數(shù)據(jù)[Event]定義事件

  通過(guò)[Event]元數(shù)據(jù),開發(fā)者可以為組件定義事件。編譯器能夠把這些自定義的事件識(shí)別為MXML標(biāo)簽屬性。使用[Event]既可以為ActionScript組件定義事件,也可以為MXML組件定義事件。
   

 

//[Event(name="eventName",type="package.eventType")] 

//name說(shuō)明了事件的名稱,而type表明了該名稱對(duì)應(yīng)的事件類型。事件偵聽器使用name進(jìn)行注冊(cè)。

 


  為ActionScript組件定義事件


//[Event]元數(shù)據(jù)必須置于包(package)定義之內(nèi),類(class)定義之上
            
            
package events{
                
                [Event(name
="sampleEvent", type="myEvents.SampleEvent")]
                
                
public class MyComponent extends UIComponent{
                    
//
                }
            }

 


  為MXML組件定義事件

<fx:Metadata>
        [Event(name="SwitchLightEvent", type="CustomTraficLight.events.SwitchLightEvent")]
    
</fx:Metadata>


3.觸發(fā)事件

4.創(chuàng)建事件偵聽器

 



]]>
flex事件(三)Flex應(yīng)用啟動(dòng)的事件序列http://www.tkk7.com/plandu/archive/2012/10/17/389758.html誰(shuí)用我名字啦?誰(shuí)用我名字啦?Wed, 17 Oct 2012 09:05:00 GMThttp://www.tkk7.com/plandu/archive/2012/10/17/389758.htmlhttp://www.tkk7.com/plandu/comments/389758.htmlhttp://www.tkk7.com/plandu/archive/2012/10/17/389758.html#Feedback0http://www.tkk7.com/plandu/comments/commentRss/389758.htmlhttp://www.tkk7.com/plandu/services/trackbacks/389758.htmlFlex應(yīng)用啟動(dòng)的事件序列(1)

  Flex的事件可以分為系統(tǒng)事件和用戶事件。

  由用戶操作觸發(fā)的事件,就是用戶事件。Flex的用戶事件遵循了W3C DOM Level3(W3C文檔對(duì)象模型Level3)事件規(guī)范。具體可參見(jiàn)http://www.w3.org/TR/DOM-Level-3-Events/ 。用戶事件是應(yīng)用中最常見(jiàn)的事件類型,比如鼠標(biāo)點(diǎn)擊、鍵盤輸入等都屬于用戶事件。除了用戶直接觸發(fā)的事件,在Flex應(yīng)用運(yùn)行過(guò)程中,F(xiàn)lex架構(gòu)本身也會(huì)自動(dòng)觸發(fā)一些事件,也就是所謂的系統(tǒng)事件。在信號(hào)燈應(yīng)用中,creationComplete事件是系統(tǒng)事件,而MouseEvent.CLICK事件則是用戶事件。

  所有的Flex可視化組件都繼承自基類mx.core.UIComponent,同時(shí)也繼承了UIComponent的系統(tǒng)事件。當(dāng)Flex應(yīng)用啟動(dòng)時(shí),會(huì)觸發(fā)一系列事件,這些事件表明了組件在啟動(dòng)過(guò)程中的不同時(shí)間點(diǎn),比如被創(chuàng)建、布局完成或者在屏幕上完成繪制等。這些啟動(dòng)序列事件幫助開發(fā)者更好的監(jiān)控并控制應(yīng)用運(yùn)行生命周期的各個(gè)環(huán)節(jié)。實(shí)際上,這"一系列"事件都由一個(gè)事件類mx.events. FlexEvent表示。FlexEvent類的不同類型反映了啟動(dòng)過(guò)程中不同階段發(fā)生的事件。

  在Flex應(yīng)用中,容器和組件啟動(dòng)時(shí)的事件序列不同。

  在組件所屬的容器內(nèi),組件被實(shí)例化、加入到父容器的顯示列表中,然后設(shè)置外觀尺寸,最終完成容器中的布局,并被繪制出來(lái)。圖3-1顯示了組件的啟動(dòng)事件序列:


圖3-1

  由于容器包含了子組件,因此容器啟動(dòng)時(shí)的序列不同于單一組件,圖3-2顯示了包含子組件的容器的啟動(dòng)過(guò)程。不僅容器本身要完成創(chuàng)建的全過(guò)程,所包含的子組件也要依次序地完成自身的創(chuàng)建。當(dāng)然如果容器中嵌入了子容器,其啟動(dòng)過(guò)程與此類似。

圖3-2
 

Flex應(yīng)用啟動(dòng)的事件序列(2

  在所有組件和容器被創(chuàng)建并最終繪制在屏幕上之后,Application對(duì)象將觸發(fā)applicationComplete事件,該事件類型標(biāo)志著應(yīng)用啟動(dòng)完畢,是應(yīng)用啟動(dòng)時(shí)觸發(fā)的最后一個(gè)事件。

3-2中描述的部分啟動(dòng)序列事件解釋如下:

  preinitialize:在初始化之前觸發(fā),對(duì)于容器來(lái)說(shuō),所有子組件尚未定義。一般來(lái)說(shuō),不會(huì)在該事件觸發(fā)時(shí)配置組件;

  initialize:當(dāng)組件或容器完成構(gòu)造,并設(shè)置初始化屬性后觸發(fā)。在這個(gè)階段,對(duì)于容器,其所有的子組件的preinitialize事件已經(jīng)觸發(fā),但是這些子組件還沒(méi)有完成布局;

  creationComplete:當(dāng)應(yīng)用或組件(包括所有子組件)完成構(gòu)造、布局和繪制可見(jiàn)時(shí)觸發(fā)。當(dāng)creationComplete事件發(fā)生時(shí),組件已經(jīng)被創(chuàng)建出來(lái),因此開發(fā)者也能夠訪問(wèn)同組件相關(guān)的屬性,比如heightwidth等屬性。開發(fā)者通常使用這個(gè)事件來(lái)對(duì)應(yīng)用進(jìn)行初始化配置。比如為某些應(yīng)用組件添加偵聽器,調(diào)用Web服務(wù)等;

  applicationComplete:所有的組件初始化完成并顯示。

 



]]>
flex事件(二)事件對(duì)象重要的屬性和方法http://www.tkk7.com/plandu/archive/2012/10/17/389757.html誰(shuí)用我名字啦?誰(shuí)用我名字啦?Wed, 17 Oct 2012 08:54:00 GMThttp://www.tkk7.com/plandu/archive/2012/10/17/389757.htmlhttp://www.tkk7.com/plandu/comments/389757.htmlhttp://www.tkk7.com/plandu/archive/2012/10/17/389757.html#Feedback0http://www.tkk7.com/plandu/comments/commentRss/389757.htmlhttp://www.tkk7.com/plandu/services/trackbacks/389757.html事件對(duì)象重要的屬性和方法

  flash.event.Event類的全部6個(gè)屬性都是只讀屬性,這些屬性提供了發(fā)生事件的基本信息。我們已經(jīng)討論過(guò)target和currentTarget屬性(見(jiàn)6.2.1節(jié)的事件屬性:target和currentTarget(見(jiàn)第103頁(yè))),并在"EventJourney的事件偵聽器myEventhandler中使用eventPhase屬性來(lái)獲取事件旅程的階段。Event類也提供了許多方法。我們只介紹事件對(duì)象常用的屬性和方法,更詳細(xì)信息請(qǐng)參考"Adobe FlexTM 3語(yǔ)言參考"(http://livedocs.adobe.com/flex/3/langref/)。


1.target和currentTarget屬性
 

  如我們剛才提到的,在事件被觸發(fā)后,F(xiàn)lash Player就會(huì)創(chuàng)建事件對(duì)象,并逐一檢查"事件旅程"上的節(jié)點(diǎn)是否針對(duì)發(fā)生的事件注冊(cè)了偵聽器,為事件對(duì)象賦值,并調(diào)用偵聽器。事件對(duì)象源自flash.events.Event類。事件對(duì)象currentTarget屬性的值會(huì)在事件流中改變,而target屬性則不會(huì)變化。(關(guān)于事件對(duì)象,我們將在6.3節(jié)(見(jiàn)第106頁(yè))深入討論)由此,開發(fā)者能夠通過(guò)

  currentTarget屬性獲知事件旅程現(xiàn)在停在了哪個(gè)節(jié)點(diǎn)上。

currentTarget屬性:事件旅程中,currentTarget屬性代表了Flash Player正在檢查的節(jié)點(diǎn)對(duì)象。比如,當(dāng)Flash Player遍歷到ctnButtons對(duì)象,那么event.currentTarget就是ctnButtons對(duì)象。


  target屬性:target屬性就是發(fā)生事件的對(duì)象。在信號(hào)燈應(yīng)用中,event.target就是用戶所點(diǎn)擊的按鈕對(duì)象,在事件旅程中,該屬性的值始終不變。信號(hào)燈應(yīng)用中,偵聽器myEventHandler利用event.target來(lái)獲取被點(diǎn)擊按鈕上的標(biāo)簽數(shù)據(jù)。此時(shí)賦給event.currentTarget屬性的則是HBox容器對(duì)象ctnButtons。

2. type屬性(String類型)

  當(dāng)用戶進(jìn)行鼠標(biāo)操作時(shí),F(xiàn)lash Player會(huì)自動(dòng)調(diào)度鼠標(biāo)事件MouseEvent。操作可能是鼠標(biāo)點(diǎn)擊、移動(dòng)、滑動(dòng)滾輪等。這些不同的操作都是通過(guò)事件類型來(lái)標(biāo)記的。

type屬性返回的字符串表明事件的類型。代表事件類型的字符串是大小寫敏感的。Flex以常量的形式內(nèi)置了許多事件類型,如Event.unloaded和MouseEvent.CLICK。


. cancellable屬性(String類型)和preventDefault()方法

  默認(rèn)情況下,許多事件都有 Flash Player 執(zhí)行的關(guān)聯(lián)行為。比如,如果用戶在文本字段中鍵入一個(gè)字符,則默認(rèn)行為就是在文本字段中顯示該字符。如果需要取消TextEvent.TEXT_INPUT事件的默認(rèn)行為,你可以使用preventDefault()方法來(lái)阻止顯示所鍵入的字符。

不可取消行為的一個(gè)示例是與Event.REMOVED事件關(guān)聯(lián)的默認(rèn)行為,只要Flash Player從顯示列表中刪除顯示對(duì)象,就會(huì)生成該事件。由于無(wú)法取消默認(rèn)行為(刪除元素),因此preventDefault()方法對(duì)此默認(rèn)行為無(wú)效。

  開發(fā)者可以使用Event.cancelable屬性來(lái)檢查是否可以阻止與特定事件關(guān)聯(lián)的默認(rèn)行為。如果屬性Event.cancelable的值為true,則可以使用preventDefault()來(lái)取消默認(rèn)行為,否則,preventDefault()無(wú)效。

 



]]>
主站蜘蛛池模板: 成年人免费观看视频网站| 日本二区免费一片黄2019| 亚洲午夜国产精品| 免费高清在线爱做视频| 老司机午夜精品视频在线观看免费| 久久久久无码专区亚洲av| 国产免费一区二区三区在线观看| 国产精品亚洲精品观看不卡| 亚洲 国产 图片| 亚洲日本在线免费观看| 老司机午夜精品视频在线观看免费| 国产AV无码专区亚洲Av| 成人奭片免费观看| a视频免费在线观看| 亚洲国产精品免费观看| 亚洲乱色熟女一区二区三区丝袜| 一色屋成人免费精品网站| 精品无码一级毛片免费视频观看 | 免费A级毛片无码久久版| 国产线视频精品免费观看视频| 亚洲精品亚洲人成在线播放| 2048亚洲精品国产| 成人免费在线视频| 免费精品一区二区三区第35| 亚洲欧美aⅴ在线资源| 亚洲国产精品久久久久网站 | a毛片在线看片免费| 亚洲欧美国产国产一区二区三区| 久久精品国产精品亚洲精品 | 亚洲一本大道无码av天堂| 18禁免费无码无遮挡不卡网站| 久久一区二区三区免费| 精品国产日韩亚洲一区91| 亚洲国产情侣一区二区三区| 久久91亚洲人成电影网站| 亚洲精品国产精品乱码不卞| 精品国产一区二区三区免费看| 午夜免费1000部| 免费无码作爱视频| 一级人做人a爰免费视频| 亚洲av无码专区在线电影|