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

正文內容

教你7步實現flex自定義event及參數傳遞-資料下載頁

2025-08-04 16:48本頁面
  

【正文】 要設置一個dataprivider。chapter 2 getting started自定義組件命名空間格式:xmlns:Tag=包名。例如:xmlns:MyComps:.*。調用格式:tag:ClassName /。例如:MyComps:MyImage/。swc是flex組件的歸檔文件。數據綁定。一、在mxml中,組件用{}引用其它數據。當被引用數據被更改時,組件的{}值也會這被更新。flex的遠程方法調用(Remoteprocedurecall[rpc])用于flex與服務端交換數據(發(fā)送/接收)。flex有多種RPC服務,包括soap,amf(java),。MXML包含以下幾種類型的RPC組件:soap、ervice、remoteobject(amf protocol)。在mxml文件中,在fx:Declarations標簽內定義一些非可視化組件。數據模型(data model)。數據模型用于存儲數據??梢允褂脴撕瀎x:Model,fx:XML,fx:XMLList或as類。用fx:Model定義數據模型的方法類似于直接寫xml。例如:fx:Modelid=myIdmyNamett/myName/fx:Model。數據驗證??梢栽趍xml的fx:Declares標簽中聲明驗證器,格式:mx:EmailValidator source={被驗證元素的ID} property=text/使用樣式表(css)。如果在mxml中使用fx:style標簽,即fx:style標簽必需要mxml文檔根元素的直接子元素。常用的css選擇器有class選擇器和type選擇器。使用type選擇器時需要使用命名空間,語法如下:@namespace s library://。 s|Button{}。1mx及spark架構中的一個主要區(qū)別是Spark組件依賴皮膚去定義布局及外觀。而mx組件依賴樣式及皮膚。用mx組件時,你更多地去用樣式而用Spark時,你更多地是用皮膚是處理布局及外觀。1使用效果(effect)。使用效果的步驟是先在fx:Declarations中定義一個效果,并在target中指明效果應用到的組件。然后在組件的相關事件中調用效果:()。1用mxml自定義組件。步驟:找一個和自定義組件相近的類,然后在里面添加或修改一些方法。調用方法與actionscript的自定義組件方法一樣。1在mxml中引用as中的靜態(tài)變量時,使用{}型式。1設置默認屬性(setting the default property)。很多flex組件定義一個單獨的默認屬性。默認屬性是一種速記機制,讓用戶不用輸入屬性名的情況下設置值。例如s:Lists:ArrayCollection與s:Lists:dataProviders:ArrayCollection是相等的。而里面的dataPrivider是默認屬性。另外要注意,并不是所有的組件都有默認屬性。1在mxml中使用轉義字符。若在mxml中使用字符中有數據綁定或轉義符。即用正斜線轉義。例如:\{,\\。1換行符。你可以使用‘\n’或‘amp。13。’來代表換行。1在定義一些變量前加上[Bindable]標記表示當該變量改變時,引用該變量的對像會被通知/自定修改。1引入樣式或腳本的語法:fx:Style source=url,fx:Script source=url。在mxml中設置正則表達式屬性:/regex/flags。2用法上,as與mxml的關系與js和html相似。而編譯的角度看,as與mxml的關系和servlet與jsp相似。2無論是fx:Script還是fx:Style都必需是mxml文件根節(jié)點的子節(jié)點。2使用fx:Script,請在里面加上![CDATA[]]。2MXML中,每個元素都有一個ID屬性。你可以直接通過ID引用該元素。如果元素沒有設置ID,你可以通過元素的父元素的getElementAt()、getChildAt()方法獲取元素。最后,你還可以通過方括號[名稱]的方式來獲取元素。2this是對當前文檔、對像、閉包的引用。2在as中創(chuàng)建可視元素的步驟是:先創(chuàng)建元素,然后加入到容器,最后設置元素的屬性。創(chuàng)建元素后,如果不加入到容器中,對像不會被顯視。加入容器的語法是MX架構:addChild()/addChildAt(),Spark架構:addElement()/addElementAt()。2默認情況下,元素被加入到容器的最后一個元素后面。如果你要指定順序,即需要用addElementAt()或調用addElement()后調用setItemIndex()。前者效率會高一點。2刪除元素。在Spark中,可以用removeELement(),removeElementAt(),removeAllElements()方法刪除元素。如果要是MX架構,即用Child替換上面的Element。2當調用容器的remove相關函數后,元素就會從顯視列表中去除。然而這并不代表對像會被GC刪除。緊當被刪除元素在外面沒有被引用時。flashGC才會在適當的時候刪除對像。適時刪除無用元素會大大改善性能。2只有實現了IVisualElement接口的對像才能加入到顯視列表的容器中。如果對像沒有實現IVisualElement接口而想加入到顯視列表時,可以把對像先放到UIComponent后再加入到顯視列表。例如:new UIComponent().addChild(new Sprite())。引用。parentDocument是在文檔鏈中對當前文檔的上一層文檔的引用。parentApplication是在應用鏈中對當前應用的上一層應用的引用。當被載入的應用與主應用不在同一應用域(ApplicationDomain)或安全域(SecurityDomain)時,上述引用不會生效。3在mxml中,元素的事件屬性代碼在mxml編譯后會變成一個方法。所以在元素事件屬性中的代碼的this是對文檔的引用而不是那個元素。3在mxml中引用as代碼有兩種方法,一種是fx:Script source=pac/pac/ /。另一種是include指令:include filename。格式:fx:Scriptinclude pac//fx:Script。source支持相對或絕對路徑。而include指令緊支持相對路徑。include指令可放在if語句中(語句塊中要求只有include指令)。3as的內省(introspection)機制有兩種。它們常在調試過程中使用。一種為for in 循環(huán)。另一種為as的api。3for in循環(huán)會把動態(tài)加入的屬性及方法打印出來。然后大部份的as對像并不是動態(tài)對像,所以的forin循環(huán)中,絕大部份對像不會顯視屬性及方法。用for ()方法的效果一樣。3內省api。() 。它們打印出public屬性及方法而不會打印私有的。返回的結果為一個xml。3事件可以讓程序員知道事情發(fā)生。鼠標、鍵盤、網絡請求、組件生命周期等等都會觸發(fā)事件。3flash顯視列表的根元素為Stage,往下為:SystemManagerApplication其它顯視組件。這個列表我們稱為顯視列表(display list)。3顯視列表的事件模型:捕獲》目標》冒泡。即發(fā)生事件后,事件會延著顯視列表樹從頂層到目標然后再冒到頂層。3事件被觸發(fā)時,fp(flash player)會創(chuàng)建一個事件對像,然后這個事件對像將在事件的三個階段中傳遞。在傳遞過程中,事件對像的某些屬性會被改變。你可能通過這些屬性知道事件的所在的階段。。.*,.*,.*中。另外還有一些特殊作用的事件類分布在另外一些包中。4顯視列表中的任何對像都繼承自DisplayObject,而DisplayObject繼承自EventDispatcher。EventDispatcher為顯視列表中的所有類提供了事件模型的功能。4顯視列表中的任何對像都可以通過繼承自EventDispatcher的addEventListener來監(jiān)聽事件。只要事件流通過該對像,該對像的監(jiān)聽器都會被觸發(fā)。4EventDispatcher從名稱上說,主要功能為分發(fā)事件。但在使用過程中,更多是用于添加與移動監(jiān)聽事件。4當你需要事件模型中的功能,但又不能繼承EventDispatcher時,可以實現IEventDispatcher接口。4除了由fp發(fā)送事件對像外,有些時候你可能需要自已發(fā)送事件。這時你可能通過dispatchEvent方法發(fā)送自定義事件到事件流中。4event對像中的target為觸發(fā)事件的對像。currentTarget為正在處理事件的對像。4在mxml的元素中的事件屬性直接添加事件時,如果使用click=functionname()時,event對像不會被傳入到方法中。如果要傳入event對像,需要click=functionname(event);4addEventListener中的use_capture參數為true時表示監(jiān)聽器在捕獲階段被調用,如果為false表示在冒泡階段被調用。如果不指定,那默認值會根據事件類型的不同而不同。如果你需要在事件的兩階段都解發(fā)事件,那你需要調用兩次addEventListener。use_capture參數一次為true,另一次為false。4addEventListener中的priority。如果不設置,priority默認值為0。這種情況下,先調用addEventListener的監(jiān)聽器會先被調用。如果設置了priority,即priority的值越高,越早被調用。50、addEventListerer中的weakRef。默認為false。如果此值為false,即此監(jiān)聽器不會被GC回收。如果為true,此監(jiān)聽器會被GC回收。5方法閉包在每次被調用時都會被創(chuàng)建。閉包的作用域在定義它的地方而不在調用它的地方。例如,閉包內引用外面的一個變量y,在調用它的方法外面也有一個變量y。即運行時,閉包引用的是定義的類中的y。5在addEventListener中使用閉包時,參數中的userWeepRef如果設為true,在gc運行時可能會把閉包回收。這樣會出現不可預期的錯誤。5類級別的定義不會被GC回收,閉包除外。5使用addEventListener設置的監(jiān)聽器不再被使用時,應該用removeEventListener移除。而在mxml中直接給onclick付值的方式增加的監(jiān)聽器不能被移除。5為一個對像的同一種類形事件添加多個觸發(fā)器的方法:在mxml的事件屬情中有分號隔開多個監(jiān)聽器。例如:listener1()。listener2()?;蛘呃胊ddEventListener多次:(click,m1)。(click,m2)。5在監(jiān)聽器中實現多個參數。由于addEventListener參數中的function是一個方法,且參數固定為event。如果要實現監(jiān)聽器多參數,方法有三個。一、閉包。因為閉包中變量的作用域是定義它的地方。例如:(click,function(event){fun(p1,p2)}。二、在mxml的標簽屬情中設置監(jiān)聽器,因為在mxml中設置監(jiān)聽器時,參數是隨意的。例如click=fun(event,p1,p2)。三、把參數放在currentTarget對應的對像中。在實際使用過程中,第三種方法最簡單。5手動分發(fā)事件。由于UIComponentDisplayObjectEventDispatcher。所以顯視列表中的所有對像都有dispatchEvent()方法。例如:(new Event(click))。5顯視列表中的大部份對像的事件都經歷事件模型中的三個階段(捕獲、目標、冒泡)。而不在顯視列表中的對像也具有相同的事件模型,但只有(目標)階段,例如socket的響應。另外,在顯視列表中的格式對像、驗證對像也同樣只有目標階段。5默認情況下,所有的監(jiān)聽器都只注冊在目標及冒泡階段,除非你手動注冊一些在捕獲階段的監(jiān)聽器addEventListener(click,func,true)。60、當你在一個對像中監(jiān)聽一個click事件。當該監(jiān)聽器響應時,并不一定代表是該對像dispatch的。很多情況下是該對像下的子對像觸發(fā)的。所以要區(qū)分好event中的target及currentTarget。6stopProgragation()與stopImmediatePropagation()的作用都是停止事件的傳遞,前者是阻止節(jié)點后面的事件被調用。后者是阻止當前節(jié)點當前事件往后的事件被調用。6無論是stopProgragation()還是stopImmediatePropagation()都阻不了默認事件的執(zhí)行。6在一群組件中調用addEventListener注冊同一個方法的效率比較低(性能與內存)??梢钥紤]把方法注冊在父組件中。例如在流程圖中有一大群節(jié)點。如果在所有節(jié)點中都注冊一些移動事件,這樣效率很低下??梢钥紤]把事件注冊在容器中,然后從target中獲取標識。再使用container[pre_id]獲取組件。這種做法可以加快應用的啟動速度及減小內存占用。6一般把監(jiān)聽鍵盤的任務放在最外層容器中。這樣可以統一管理。例如:(,fun)。另外需要注意,在app初始化后,你需要讓其中的任一個組件聚焦后,它才會接收到事件。6keyCode與charCode的區(qū)別在于keyCode代表鍵盤上的一個鍵,而charCode代表該鍵產生的utf8的一個值。例如k與K的keyCode是相同的,而charCode不同。6判斷組合鍵的方法。例如判斷是否為shift+q:if(){if(==81){}}。6關于操作系統、瀏覽器與fp接收事件的順序。os第一,瀏覽器第二,最后才是fp。所以當瀏覽器攔截了事件并關阻止事件后,fp會收不到事件。chapter 3:application architecture默認情況下,swf文件只能向swf文件所在的域提出或其它網絡請求。如果要仿問swf文件所在的不同的域,設置當前服務器接受的域。mxmlc可以把mxml、as、swc、rsl等文件打包成一個swf文件,而pc可以把mxml、as等編譯成swc或rsl文件。部署文件時,請確保rsl等資源文件是否存在于服務器中以及swf文件指向的rsl的路徑。flashbuilder使用swfobject2類庫把swf放在html中。在網絡安全沙箱內,flash除了ShareObjects外,不能訪問本地的磁盤及資源。在得不到用戶允許的情況下,不能從攝像頭或耳麥中獲取信息并發(fā)送到網絡。swf只能訪問網絡或本地資源兩種中的一種。也就是說要么你把swf設置為只能訪問網絡,要么把swf設置為只能訪問本地資源。設置的選項為編譯時的usenetwork=true/false。默認為true。flex只持基于組件的開發(fā)模型。常規(guī)的開發(fā)方法是先擴展一些基本的UI組件并把你需要的功能封裝在上面,然后再在UI中組裝起來。在開發(fā)過程中,你會使用自已開發(fā)的自定義組件或外部的自定義組件。默認情況下flashbuilder在項目src及其子目錄下尋找自定義組件。如果你需要使用別的地方的自定義組件,你可以設置source path。flashbuilder除了在src目錄下尋找組件外,還會在source path下尋找自定義組件尋找的順序按sourcepath順序尋找。在as中引用組件,使用import語句。在mxml中,使用命名空間。swc文件是flex的打包文件,常用的as/mxml通用組件會打包成swc文件。通過librarypath可以加載swc文件。swf文件被客戶端下載后只保存在瀏覽器的緩存中,瀏覽器關閉后,swf文件可能會被刪除。從swf文件中分離出swc文件以rsl的形式加載可以減swf的體積以及減小每次的下載量。在編譯時可以使用runtimesharedlibraries選項指定rsl的位置。1可以把flex應用分成多個模塊(modules)。編譯后,原來的一個swf文件變成多個swf文件,主swf文件在需要時才加載或卸載模塊。1在flashbuilder中你可以通過修改配置文件或直接設置mandline argument給編譯器。1flex編譯器是區(qū)分大小寫的。1swf只能訪問自已域保存的ShareObject文件。默認情況下ShareObject的大小為每個域100k。如果要使用大于100k,程序需要彈出詢問對話框。另外當大于100k時,fp會自動彈出對話框,詢問用戶是否允許超過100k的大小。1fp會自動監(jiān)控程序占用內存及cpu的情況。如果要長時間占用大量資源,fp會自動詢問用戶,是否需要關閉應用。1fp不會把客戶端的一些私密信息提供給app,例如:帳戶、電話、mail等。但為了提高app的用戶體驗,fp會提供user agent,系統兼容性(語言,mp3編碼),是否有攝像頭,麥克風。另外fp還可以設置剪帖板的信息,但不會提供獲取剪帖板信息的方法。1flash有四種沙箱類型。同一個swf文件在不同的沙箱中有
點擊復制文檔內容
研究報告相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1