日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Flash 组件应用与开发

發(fā)布時(shí)間:2024/4/17 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Flash 组件应用与开发 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、Flash 組件概述

組件是帶有參數(shù)的電影剪輯,這些參數(shù)可以用來(lái)修改組件的外觀和行為。每個(gè)組件都有預(yù)定義的參數(shù),并且它們可以被設(shè)置。每個(gè)組件還有一組屬于自己的方法、屬性和事件,它們被稱為應(yīng)用程序程接口(Application Programming Interface,API)。使用組件,可以使程序設(shè)計(jì)與軟件界面設(shè)計(jì)分離,提高代碼的可復(fù)用性。Flash MX 2004 或 Flash MX Professional 2004 中包含的組件不是 FLA 文件,而是 SWC 文件。SWC 是用于組件的 Macromedia 文件格式。庫(kù)項(xiàng)目中的電影剪輯可以被預(yù)編譯成swf文件。這樣可以縮短影片測(cè)試和發(fā)布的執(zhí)行時(shí)間。將 SWC 文件拷貝到 First Run\Components目錄后,該組件便會(huì)出現(xiàn)在“組件”面板中。

二、組件基類

Flash 自帶的組件都位于mx.controls包中。組件直接或間接繼承于UIComponent類,UIComponent類對(duì)UIObject類做了擴(kuò)展,而UIObject類又是MovieClip類的子類。MovieClip類不屬于任何包,定義文件位于FlashInstalDir\en\First Run\Classes目錄。UIComponent類和UIObject類都位于mx.core包中,定義文件位于FlashInstalDir\en\First Run\Classes\mx\core目錄。

UIObject類對(duì)MovieClip類進(jìn)行封裝,所有Flash V2組件都可以共享它的方法、屬性和事件。UIObject類使組件在樣式、事件和縮放比例調(diào)整上得到了實(shí)現(xiàn)。它提供了動(dòng)態(tài)創(chuàng)建刪除組件的方法:

·createObject方法:直接調(diào)用attachMovie函數(shù),返回一個(gè)MovieClip類型的引用。

·createClassObject方法:調(diào)用createObject方法,創(chuàng)建一個(gè)指定類的組件實(shí)例,并返回所創(chuàng)建的組件的引用。

·createEmptyObject方法:創(chuàng)建一個(gè)空的UIObject實(shí)例。

·destroyObject方法:使用delete語(yǔ)句刪除已經(jīng)創(chuàng)建的組件實(shí)例。

UIObject還封裝了其它的一些方法,包括:

·redraw方法:在當(dāng)前幀重新繪制組件。

·invalidate方法:標(biāo)記組件,使之在下一個(gè)幀間隔重新繪制。

·move方法:把組件移動(dòng)到指定位置。

·setSize方法:設(shè)置組件大小。

·setSkin方法:設(shè)置組件皮膚。

·getStyle方法:獲取樣式信息。

UIObject類的屬性除了scaleX和scaleY外,其它都是只讀屬性,使用時(shí)需要注意。所以如果要在運(yùn)行時(shí)調(diào)整組件外觀,就必須使用UIObject類的方法。對(duì)于只讀屬性的賦值是無(wú)效的,即使是對(duì)非只讀屬性的賦值,有時(shí)也會(huì)造成組件在外觀顯示上的差錯(cuò)。UIObject類還定義了一系列的事件,包括加載事件(load)、卸載事件(unload)、移動(dòng)事件(move)、重繪事件(draw)和大小調(diào)整事件(resize)。

利用UIObject類的組件創(chuàng)建方法,可以在運(yùn)行時(shí)創(chuàng)建組件實(shí)例。

UIComponent類從UIObject類繼承,它并不是一個(gè)可視的組件。和UIObject類一樣,所有Flash V2組件都可以共享它的方法和屬性。它實(shí)現(xiàn)了組件的焦點(diǎn)獲取、鍵盤(pán)輸入,組件的禁用和啟用以及組件的按布局調(diào)整自動(dòng)大小。

UIComponent類的主要方法有:

·getFocus方法:利用焦點(diǎn)管理器(Selection)返回一個(gè)當(dāng)前獲取焦點(diǎn)的對(duì)象的引用。

·setFocus方法:使組件獲取焦點(diǎn)。

UIComponent類的enabled屬性指定組件實(shí)例是否可用;tabIndex屬性指定組件的焦點(diǎn)獲取順序。UIComponent類還定義一系列焦點(diǎn)和鍵盤(pán)事件:焦點(diǎn)獲取事件(focusIn),焦點(diǎn)轉(zhuǎn)移事件(focusOut)、鍵盤(pán)按下事件(keyDown)和鍵盤(pán)釋放事件(keyUp)。

三、Flash V2 組件的基本使用方法

在Flash MX 2004和 Flash MX Professional 2004自帶了一套組件稱為Flash V2組件,它是從Flash MX的V1組件升級(jí)而來(lái)的,V1組件和V2組件盡量不要一起使用以免發(fā)生一些錯(cuò)誤。V2組件支持實(shí)時(shí)預(yù)覽,使開(kāi)發(fā)者在編輯狀態(tài)下就能看到組件的外觀效果。開(kāi)發(fā)者可以自行設(shè)置是否需要實(shí)時(shí)預(yù)覽和實(shí)時(shí)預(yù)覽的模式,以節(jié)省計(jì)算機(jī)資源。在ControlàEnable Live Preview菜單設(shè)置是否使用實(shí)時(shí)預(yù)覽,在ViewàPriview Mode菜單選擇預(yù)覽模式。組件實(shí)質(zhì)上是一些被編譯好的電影剪輯,其格式為SWC。SWC文件類似與Zip文件,可以使用一般的解壓縮程序進(jìn)行解壓查看其內(nèi)容。電影剪輯可以在編輯環(huán)境中直接發(fā)布為組件,也可以直接編譯存儲(chǔ)為swc格式的組件文件,便于其他開(kāi)發(fā)者使用。同樣,開(kāi)發(fā)者也可以從外部導(dǎo)入組件。

使用組件,必須把組件面板中所需要的組件拖到舞臺(tái)(Stage),使組件出現(xiàn)在庫(kù)面板。這樣組件就可以象普通的庫(kù)項(xiàng)目一樣被使用。使用腳本可以動(dòng)態(tài)的創(chuàng)建組件實(shí)例,運(yùn)行時(shí)創(chuàng)建組件可以有三個(gè)方法:createObject()、creatClassObject()和attachMovie()。attachMovie()是MovieClip類的方法,createObject()和creatClassObject()是UIObject類方法,但事實(shí)上它們都是對(duì)attachMovie()的直接或間接調(diào)用。

組件被添加后可以在屬性或參數(shù)面板中直接設(shè)置組件的參數(shù)。另外還要為組件定義事件,最簡(jiǎn)單的方法是使用on(eventName)進(jìn)行定義。另外還可以使用偵聽(tīng)器和事件處理函數(shù)等定義組件事件的處理方法。組件的事件定義比較靈活,使用何種方式定義取決與個(gè)人的習(xí)慣與偏好。當(dāng)事件發(fā)生時(shí),組件會(huì)廣播一個(gè)Object類型的事件參數(shù),該參數(shù)中包括了事件發(fā)生對(duì)象和事件類型的信息。另外,使用深度管理器(DepthManager)可以對(duì)組件進(jìn)行深度管理。

Flash組件最大的特點(diǎn)是開(kāi)發(fā)者可以自定義組件,尤其是界面元素的自定義,使其更具有吸引力。V2組件有它自己的一套默認(rèn)界面方案,稱為主題(Theme)。主題包括兩個(gè)方面:樣式(Style)和外觀(Skin)。UIObject類的setStyle()和getStyle()方法可以獲取和設(shè)置組件的樣式。樣式的設(shè)置比較簡(jiǎn)單,主要有以下三種方式:

·直接設(shè)置屬性:

T.color=0xff5567;

·使用簡(jiǎn)單的setStyle()名值對(duì)方法自定義樣式:

instanceName.setStyle("property", value);

·把樣式對(duì)象與setStyle()方法結(jié)合使用來(lái)自定義樣式:

//創(chuàng)建一個(gè)樣式對(duì)象

var styleObj = new mx.styles.CSSStyleDeclaration;

//刻畫(huà)樣式細(xì)節(jié)

//……

styleObj.fontSize = 18;

//把樣式應(yīng)用到組件實(shí)例

b.setStyle("styleName", styleObj);

樣式的級(jí)別包括4個(gè)層次:全局樣式,應(yīng)用于所有組件;組件類單獨(dú)的默認(rèn)樣式,應(yīng)用于某一類的組件;自定義樣式;直接設(shè)置組件實(shí)例的屬性。對(duì)于不同級(jí)別的樣式Flash按照一定的順序分別把這些樣式應(yīng)用到組件。

首先,Flash 查找組件實(shí)例上的樣式屬性,如果實(shí)例上沒(méi)有直接設(shè)置樣式,Flash 將查看實(shí)例的styleName 屬性,確定是否向它分配了樣式聲明。如果 styleName 屬性沒(méi)有被分配樣式聲明,Flash 將查找默認(rèn)類樣式聲明上的屬性。如果沒(méi)有類樣式聲明,并且屬性沒(méi)有繼承它的值,則將檢查 _global 樣式聲明。如果屬性未在 _global 樣式聲明中定義,則該屬性為 undefined。

另外,如果沒(méi)有類樣式聲明,但屬性確實(shí)繼承了它的值,Flash 將查找該實(shí)例父級(jí)上的屬性。如果屬性未在父實(shí)例上定義,Flash 將檢查父實(shí)例的 styleName 屬性;如果未定義該屬性,Flash將繼續(xù)查看父實(shí)例,直到 _global 級(jí)別。如果屬性未在 _global 樣式聲明中定義,則該屬性為undefined。

另一方面,為了更好的使用組件,還需要修改或重新定義組件外觀。Flash V2的外觀定義文件位于FlashInstralDir\en\First Run\ComponentFLA文件夾下。在修改外觀時(shí),需要把原始的外觀定義文件作為外部庫(kù)導(dǎo)入(FileàOpen External Library),并把外部庫(kù)中的外觀定義庫(kù)項(xiàng)目拖到當(dāng)前文檔的庫(kù)中,外觀庫(kù)項(xiàng)目通常都是電影剪輯(MovieClip)。每一個(gè)組件外觀定義庫(kù)項(xiàng)目文件夾中都包含一個(gè)States文件夾,其中定義了組件在不同狀態(tài)下的外觀,每一個(gè)狀態(tài)都指定了一個(gè)鏈接名(linkageName)作為腳本引用,如果修改了這個(gè)名稱,則會(huì)使組件在該狀態(tài)下的外觀加載發(fā)生錯(cuò)誤。在組件的類文件中,每一個(gè)狀態(tài)都使用一個(gè)字符串屬性指定其外觀庫(kù)項(xiàng)目的鏈接名,如果要重新定義組件某一狀態(tài)下的外觀,只要在腳本中修改這個(gè)字符串屬性的值就可以了,當(dāng)然首先必須存在可鏈的新的外觀庫(kù)項(xiàng)目。

了解了這樣一個(gè)組件外觀機(jī)制以后,組件外觀的修改就變的非常簡(jiǎn)單。其關(guān)鍵就是修改或重新定義一組新的外觀庫(kù)項(xiàng)目并指定其鏈接名,然后修改組件類文件中指定組件外觀的屬性。開(kāi)發(fā)者可以在組件實(shí)例的初始化事件(initialize)中修改組件實(shí)例的外觀。修組件所有實(shí)例外觀的方法比較多,例如_root的第一幀使用ClassName. prototype.stateName=value語(yǔ)句,該語(yǔ)句也可以直接在#initclip和#endinitclip代碼塊中使用;另外還可以使用類繼承的方式,在組件初始化時(shí)就為組件外觀鏈接屬性指定新的值,這里也需要用到#initclip、#endinitclip代碼塊。#initclip和#endinitclip是Flash的編譯器命令,作為初始化代碼塊的開(kāi)始標(biāo)記和結(jié)束標(biāo)記。只要符號(hào)(symbol)被定義,那么初始化代碼就被先于第一幀執(zhí)行,而且緊執(zhí)行一次。所以在這個(gè)代碼塊中,可以為整個(gè)組件類指定不同狀態(tài)下的外觀。

轉(zhuǎn)載于:https://www.cnblogs.com/morrispan/archive/2010/10/02/1841487.html

與50位技術(shù)專家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的Flash 组件应用与开发的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。