freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

教你7步實現(xiàn)flex自定義event及參數(shù)傳遞(編輯修改稿)

2024-08-31 16:48 本頁面
 

【文章內(nèi)容簡介】 。y=222text=A:/50. mx:Labelx=37y=251text=B:/51. mx:Labelx=23y=278text=Total:/52. mx:Buttonx=244y=219label=觸發(fā)兒子事件click=onSumToNode(event)/53. ns1:BrotherAx=37y=10id=Awidth=24754. /ns1:BrotherA55. ns1:BrotherBx=323y=10id=B56. /ns1:BrotherB57. 58. /mx:Canvas59. 60. /mx:Application 執(zhí)行(存入分別“調(diào)用父親方法”,觸發(fā)兒子事件)最終結(jié)果:flex包含一個基于組件的開發(fā)模型,你只需要按需求繼承現(xiàn)有的組件并擴展相關(guān)的方法就可開發(fā)你的應(yīng)用??梢暬M件包括以下主要特性:尺寸、事件、樣式、效果、皮膚。flex定義了兩套組件。一套為Spark,放在spark.*包下。一套為MX,放在mx.*包下。Spark是在flex4中新添加的,mx為舊版本中定義的。兩套組件的主要不同點在于樣式及皮膚的使用。另外對于容器組件,布局的方式也改變了。有些組件在兩套UI中都存中,例如按鈕,在這種情況下adobe建議你使用Spark中的組件。有些組件是某套UI特有的。例如Spark中的3d效果。mx組件中的數(shù)據(jù)可視化組件,例如DataGrid、AdvancedDataGrid。所以你的應(yīng)用會包含兩套UI中的組件??梢暬M件的繼承層次結(jié)構(gòu):ObjectEventDispatcherDisplayObjectInteractiveObjectDisplayObjectContainerSpriteFlexSpriteUIComponent。flex中所有的可視化對像都繼承自UIComponent。UIComponent中需要注意以下屬性。doubleClickEnabled:flex默認是不支持雙擊的,如果要開啟雙擊,請把該屬性設(shè)為true。height:在mxml中你可以設(shè)置值為數(shù)字,這時默認單位為pix。你也可以設(shè)置為70%這種比例。在as中,如果要設(shè)置百分比,你需要用percentHeight這個屬性。x,y:這組屬性只在layout為絕對布局時才有效。每一個flex組件都有對應(yīng)的mxml接口和as接口。兩者之間是相等的。每個一可視化組件都包含以下三個生命周期事件:preInitialize:組件剛被創(chuàng)建,還沒有添加子節(jié)點,且不可見。initialize:把子節(jié)點初始化好,并尺寸也設(shè)置好,但仍然處于不可見狀態(tài)。creationComplete:組件已經(jīng)被放在父容器中而且可見。你可以使用上面三個事件對組件做一些初始化工作。flex提供了多種設(shè)置組件大小和布局的機制。默認大?。喝绻悴恢付ńM件的大小或布局,flex會自動設(shè)置一個適合的值。顯式設(shè)置大?。耗憧梢燥@式地設(shè)置組件的height/width大小?;诒壤脑O(shè)置大?。豪缭趍xml中設(shè)置height/width=70%或在as中設(shè)置percentHeight/percentWidth=70。基于約束的布局:你可通過組件中的樣式屬性:top,buttom等設(shè)置組件的布局及大小。這種設(shè)置方式只可以使用在父組件為絕對布局的情況。flex應(yīng)用是基于事件驅(qū)動的。事件可以讓程序員知道用戶與UI的交互、組件的生命周期及外觀變化。當(dāng)一個組件分發(fā)事件,所以對該組件進行監(jiān)聽的監(jiān)聽器都會被通知。1除了用選擇器設(shè)置組件的外觀外,還可以直接調(diào)用元素的setStyle(proName,value)設(shè)置外觀。1flex4中的類選擇器需要使用命名空間。例子代碼:@namespace s library://。 s|BorderContainer{borderColor:red。}。1效果(effect)是組件在一段時間內(nèi)的視覺或聽覺上的變化,例如退色,位移等。1數(shù)據(jù)綁定是源屬性(source)發(fā)生變化時,目的(destination)屬性會自動產(chǎn)生變化。1flex提供了三種數(shù)據(jù)綁定的方式。第一種是在mxml中使用{}括號在目的屬性中對源屬性進行綁定。第二種是在mxml中使用fx:Binding標簽對源屬性與目標屬性進行綁定。第三種是在as中使用BindingUtils方法對源屬性與目標屬性進行綁定。1數(shù)據(jù)綁定符{}可以直接對屬性進行引用,也可以對方法進行引用。例如:{()}1數(shù)據(jù)綁定符{}和fx:Binding兩種方式對數(shù)據(jù)進行綁定是從編譯時就開始的。而BindingUtils即在運行時才開始綁定。1可綁定符[]的意思是當(dāng)對應(yīng)的屬性變化時,會觸發(fā)數(shù)據(jù)綁定事件,通知綁定的目標屬性。1當(dāng)源對像分發(fā)initialize事件以及在源對像變化時都會觸發(fā)數(shù)據(jù)綁定事件。如果你創(chuàng)建一個對像,并想讓它可以成為數(shù)據(jù)綁定的源,那屬性前面必需加上[Bindable]/[Bindable(eventname)]/[Bindable(event=eventname)]標簽。當(dāng)你直接使用[Bindable]標簽時,實質(zhì)上等價于[Bindable(propertyChange)]。當(dāng)屬性發(fā)生改變時,flex會分發(fā)propertyChange事件給綁定于此屬性的綁定目標對像。2通過fx:Binding標簽或BindingUtils可以把多個源屬性綁定到一個目標對像。綁定后,任意一個源發(fā)生改變時,目標對像都會被更新。2雙向綁定,數(shù)據(jù)的任意一方發(fā)生變化時,另一方都會被通知并改變。數(shù)據(jù)綁定表達式:@{}。數(shù)據(jù)綁定標簽:fx:Binding source= distination=destination twoWay=true /。另外樣式、效果、RPC中的request和arguments對像都不支持雙向綁定。2使用方法作為數(shù)據(jù)綁定的源。當(dāng)方法的參數(shù)為[Bindable]時,參數(shù)的改變會觸發(fā)數(shù)據(jù)綁定事件,讓目標屬性的值更新為方法的結(jié)果。如果方法中沒有[Bindable]參數(shù),即目標屬性只會在開始時被更新一次。2如果你想綁定一個方法作為源數(shù)據(jù),但該方法又沒有可綁定的參數(shù)時可以使用[Bindable(event=evenname)]標簽,當(dāng)該對像分發(fā)dispatchEvent(new Event(eventname))時,綁定到方法的目標屬性就會被更新。2在類定義的地方便用[Bindable]標簽等價于在該類中的所有public屬性以及有對應(yīng)的set/get方法的屬性中加上[Bindable]標簽。2在定義一個屬性的地方使用[Bindable]標簽的作用是當(dāng)該屬性被替換成另一個值時,目標屬性會接收到通知事件,并更新值。這里要注意的是只有被替換時才更新,如果只是該屬性中的某個屬性被改變的情況,目標對像是不會被更新的。2在數(shù)組(ArrayCollection)中使用[Bindable]標簽時,無論是數(shù)組被替換還是數(shù)組中的元素改動,都會觸發(fā)更新事件。2如果只綁定數(shù)組中的某個元素時,應(yīng)使用getItemAt()。這樣該元素被替換時會觸發(fā)更新事件去更新目標對像。但如果使用[num]的形式進行綁定時,不會觸發(fā)更新事件。在數(shù)據(jù)綁定符({})和數(shù)據(jù)綁定標簽(fx:Binding)中,你可以使用as表達式。例如{Number()*6/7}和ex4表達式。()/bindSetter()中使用。3as中的方法綁定接口。(funToCall,sourceObj,):ChangeWatcher。3(sourceobj,listener)。方法添加一個監(jiān)聽器,當(dāng)綁定時件觸發(fā)時,listener會被調(diào)用。3如果源屬性被替換,但被替換的對像與原對像是同一個對像,這種情況下更新更件不會被觸發(fā)。如果你想自已控制事件觸發(fā),你可以在[Bindable(eventname)]中指定事件名,然后在想更新時通過dispatchEvent(new Event(eventname))的方式觸發(fā)。3數(shù)據(jù)綁定源中的整個屬性鏈(chain)中的每一個節(jié)點都需要[Bindable],如果只有最未端屬性是Bindable,那鏈中的其它層屬性被更改時,不會觸發(fā)更新事件。3如果你把對像綁定到dataProvider的話,當(dāng)你需要改變其中一個對像的一個屬性時,(index,propername,value)。這樣更新對像才會同時更新到顯視組件中。3如果你把Array綁定到顯視組件中時,該組件只在初始化時更新一次值。初始化后,當(dāng)Array中的項改變時,不會觸發(fā)更新。3容器提供了一個層次結(jié)構(gòu)讓你去布局組件。3flex最頂層持容器叫application。3flex容器有兩種,一種是布局容器(layout container),另一種為導(dǎo)航容器(navigator container)。布局容器用于布局子組件/子容器的大小和位置。導(dǎo)航容器用于多個容器的導(dǎo)航。導(dǎo)航容器只能夠到mx容器及spark的NavigatorContent容器。mx組件容器只能存放繼承自UIComponent對像的組件,而spark容器可以放下實現(xiàn)IVisualElement接口的組件。IVisualElement在UIComponent對像的繼承層次中被實現(xiàn)。4mx容器與spark容器的主要區(qū)別在于mx組件的布局是固定的,而spark組件的布局是可以被替換的。4創(chuàng)建策略(Creation Policy)。創(chuàng)建策略指定了容器對子組件的初始化進程。創(chuàng)建策略有三個選項:。all:開始時初始化所有容器。NONE:不初始化所有子容器。AUTO:子組件在被需要時才創(chuàng)建,例如如果設(shè)置了AUTO選項,導(dǎo)航容器中除首頁外,其它頁的子組件在點擊后才會被創(chuàng)建。4如果把一個容器的layout屬性設(shè)為null,即該容器會采用它父容器的布局。4初始化事件順序:preinitialize(自外向內(nèi)),contentCreationComplete(容器特有,自內(nèi)向外),initialize(自內(nèi)向外),cteationComplete(自內(nèi)向外)。4容器中有一個enabled屬性,如果該屬性設(shè)為false,即所有節(jié)組件都處于enabled=false狀態(tài)。4容器中的defaultButton屬性。設(shè)置該屬性后,當(dāng)用戶在該容器上按回車鍵時,該按鈕被觸發(fā)。4spark中的四種布局:BasicLayout(絕對定位或約束布局),HorizontalLayout(單行水平布局),VerticalLayout(單身垂直布局),TileLayout(多行表格布局)。4spark容器中如果放置一個大于該容器的組件,默認情況下該組件會越過容器顯視。4如果要把組件的顯視限制在容器內(nèi),可以使用viewport和scrollbar。50、viewport定義了兩個區(qū)域,一個為邏輯區(qū)域(logical content),另一個為可視窗口(visible window)。邏輯區(qū)域包括所有的子組件。顯視區(qū)域是用戶能看見的,是邏輯區(qū)域的一個子集。5veiwport的contentHeight/contentWidth是邏輯區(qū)域的大小,它的大小由子組件決定。5height/width是可視窗口的大小。5verticalScrollPosition/horizontalScrollPosition是可視化窗口相對于邏輯窗口的坐標。坐標為負時,可視化窗口向左上移。為正時向右下移。5viewport中的clipAndEnableScrolling屬性默認為false,即如果子組件的大小大于容器,那子組件將越過容器邊界顯視。如果設(shè)置為true,即超出容器部份將不顯視。5可以通過三種方法為容器增加滾動功能:1,增加HScrollBar/VscrollBar。2,把容器放到Scroller中。3,在容器使用的皮膚中加入Scroller。5在H/VScrollerBar中設(shè)置viewport中指定該bar的目標容器。當(dāng)滑動滾動條時,滾動條會改變?nèi)萜鞯膙erticalScrollPosition/HorizontalScrollPosition的值。5放在scroller中的容器的clipAndEnableScrolling的值為true。5只有實現(xiàn)了viewport接口的容器都才能使用scroller。如果容器沒實現(xiàn)viewport,例如BorderContainer、SkinnableContainer,即可以在此容器內(nèi)放置scroller然后再放實現(xiàn)了viewport的容器。也可以先在scroller內(nèi)先放置group,然后再放置沒實現(xiàn)viewport接口的容器。5mx組件容器默認就支持滾動,當(dāng)clipContent為true而且子組件超出容器邊界時,滾動條自動出現(xiàn)。如果需要滾動條一直出現(xiàn),可以設(shè)置horizontalScrollPolicy和verticalScrollPolicy屬性為true。60、顯視列表中對節(jié)點的操作方法,在Spark與mx組件中是不同的。主要的不同點是spark組件的方法名中大部份含有Element,而mx組件中則以Child代替。6在顯視列表中調(diào)用numElements/numChildren方法得到的是直接子節(jié)點的數(shù)目。6flex/flash有三個坐標系統(tǒng):全局(global),本地(local),內(nèi)容(content)。6全局坐標是以舞臺(stage)的左上角為坐標原點的坐標系統(tǒng)。在MouseEvent中有stageX和stageY屬性就是全局坐標系統(tǒng)中的坐標軸。6本地坐標是相對于組件左上角的坐標。所有組件都有的mouseX與mouseY屬性指的是本地坐標系統(tǒng)的值。MouseEvent中的localX與localY也是本地坐標系統(tǒng)的值。而拖放操作中的xOffset與yOffset也是。6內(nèi)容坐標是是相對于組件內(nèi)容的左上角。與全局和本地坐標不同的是內(nèi)容坐標包括組件的內(nèi)容區(qū)域。組件中的contentMouseX/contentMouseY屬性是內(nèi)容坐標的值。6在鼠標事件中的內(nèi)容坐標與本地坐標是針對事件的目標對像,而目標對像并不是一定是你操作的對像。所以一般情況下你需要把本地坐標轉(zhuǎn)化為全局坐標然后再把全局坐標轉(zhuǎn)化為內(nèi)容坐桿。6所有的可視化組件中有關(guān)坐標的屬性。contentMouseX/contentMouseY:鼠標在組件中的內(nèi)容坐標。6所有的可視化組件中有關(guān)坐標的方法:contentToGlobal/contentToLocal,globalToContent/globalToLocal,locatToContent/localToGlobal。6布局(layout)分兩部份,一部份為尺寸(sizing)另一部份是定位(positioning)。70、布局管理器(layout manager)通過三個階段去布局你的組件。保證階段(Commitment pass),測量階段(Measurement Pass),布局階段(Layout Pass)。在保證階段,管理器先確認你設(shè)置的組件的一些與布局有關(guān)的值。此時管理器會調(diào)用各組件的mitProperties()。在測量階段,管理器為各組件設(shè)置或計算一些尺寸相關(guān)的屬性的默認值。此階段管理器會調(diào)用各組件的measure()方法。在布局階段,管理器會移動和設(shè)置組件以及相關(guān)的畫圖方法。此時管理器會調(diào)用各組件的updateDisplayList()。7flex在程序初始化時(initializes)時或在一些與布局相關(guān)的屬性改變時會自動進行布局。7在某些時候你需要手動調(diào)用組件的validateNow()方法強制進行重新布局。但此方法是計算集中型的計算,所以要確寶在需要時才調(diào)用。7布局中常用的屬性。x/y:相對于父容器的左上角坐標。在絕對布局中有效。height/width:調(diào)用像素值或百分比。top,bottom,left,right:該組件相對于父容器的上下左右距離。在約束布局/流布局中常常用到。這幾個屬性只在絕對布局中有效。7flex布局是不考慮組件是否處于可視狀態(tài)。也就是說不論組件是否可視,它都會在區(qū)域中占空間。但你可以通過includeInLayout設(shè)置組件是否參與布局。要注意的是includeInLayout只影響
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1