Flash教程:徹底學(xué)習(xí)RadioButton組件

RadioButton是常用組件之一,但是做的并不非常好,下面隨便說(shuō)說(shuō)關(guān)于RadioButton的使用。打開(kāi)窗口,組件,可以看到RadioButton。
把它拖出來(lái)打開(kāi)熟悉面板,可以看到以下屬性:
RadioButton.data:與單選按鈕實(shí)例相關(guān)的值。
RadioButton.groupName:按鈕組的名字
RadioButton.label:顯示文本
RadioButton.labelPlacement:按鈕的LABEL的方向。
RadioButton.selected:按鈕是否被選中
還有兩個(gè)是組的屬性:
RadioButtongroup.selectedData:組中被選中的按鈕的Data屬性
RadioButtongroup.selection:組里被選中的按鈕
首先來(lái)說(shuō)組的概念:
都考過(guò)四級(jí)吧?單選題中,一般有ABCD四個(gè)選項(xiàng)。對(duì),這四個(gè)選項(xiàng)就可以看做是一組如下圖:
四個(gè)按鈕的組都是test1,這么做的意義就是,當(dāng)我們選中其中1個(gè)按鈕的時(shí)候其他3個(gè)按鈕都會(huì)回到未被選中狀態(tài),也就是說(shuō)一組只可能有一個(gè)被選中的項(xiàng),這個(gè)項(xiàng)可以直接被RadioButtongroup.selection引用。如果組里沒(méi)有選任何項(xiàng)的話,RadioButtongroup.selection=undefined。
分組之后,我們就可以順利的做test2,test3了,而不出現(xiàn)彼此影響了。
下面講講如何把FLASH中選中的內(nèi)容顯示出來(lái):首先我們?cè)谖枧_(tái)上放測(cè)試題目,然后我們?cè)谙旅娣乓粋€(gè)按鈕叫做btn。
然后我們?cè)谒械陌粹o中的data里都寫(xiě)為2,把正確的選項(xiàng)的data做成1
然后打開(kāi)動(dòng)作面板,這一幀上寫(xiě)下如下代碼:
var socre = 0;
btn.onRelease = function() {
switch (test1.selection.data) {
case 1 :
trace("right");
socre ;
break;
case 2 :
trace("wrong");
break;
default ://這個(gè)default實(shí)際上就是在等著組里對(duì)沒(méi)有選中任何選項(xiàng)時(shí)返回的那個(gè)undefined
trace("請(qǐng)選擇答案");
break;
}
trace(socre);
};
實(shí)際上可以換一種寫(xiě)法將
switch (test1.selection.data) {
換成
switch (test1.selectedData) {
這兩行語(yǔ)句實(shí)際上是一樣的,但是寫(xiě)法不一樣。不過(guò)這個(gè)無(wú)所謂。
除了這樣寫(xiě),還可以寫(xiě)成其他的模式:比如將test1的四個(gè)分別命名為t1r1,t1r2,t1r3,t1r4
然后可以用下面的代碼來(lái)寫(xiě)
btn.onRelease = function() {
if (t1r2.selected) {
trace("right");
socre ;
} else {
trace("wrong!");
}
這樣寫(xiě)的后果就是要命名很多個(gè)元件,但是可以不用給按鈕寫(xiě)data,而剛才用組的話,只需要在組里加data,剩下的一個(gè)組名就全部解決了。
不過(guò)這個(gè)題目就是一個(gè)簡(jiǎn)單的對(duì)錯(cuò)判斷,所以怎么寫(xiě)都無(wú)所謂,但是如果按鈕上的data值要被用到比如時(shí)下流行的一些測(cè)試性格的小東西,group selectedData就方便一些。
下面是RadioButton提高篇
這里說(shuō)一下RadioButton的禁用和啟用,以及偵聽(tīng)器的使用。
FLASH比較蠢,按照下面的代碼,你完全寫(xiě)不出效果的。
if (cbx.selected == true) {//此代碼為錯(cuò)誤代碼
_root.g3_1.enabled = true;
_root.g3_2.enabled = true;
} else {
g3_1.enabled = false;
g3_2.enabled = false;
}
首先在舞臺(tái)上放兩個(gè)RadioButton,命名為g3_1,g3_2 另外放一個(gè)CheckBox叫做cbx
g3_1.enabled = false;//將RadioButton禁用。
g3_2.enabled = false;
mylistener = new Object();//新建偵聽(tīng)器
mylistener.click = function(eventObject) {
if (cbx.selected == true) {//如果cbx被選中
_root.g3_1.enabled = true;
_root.g3_2.enabled = true;
} else {
g3_1.enabled = false;
g3_2.enabled = false;
}
};
cbx.addEventListener("click", mylistener);//將偵聽(tīng)器添加到cbx上
這里的enabled屬性是從button類繼承下來(lái)的。偵聽(tīng)器的添加方式也完全一樣,在這里CheckBox和RadioButton是完全一樣的。RadioButton也可以按照給CheckBox加偵聽(tīng)器的方式加上偵聽(tīng)器。
功能上基本就這么多下面說(shuō)一下RadioButton的外觀:
首先說(shuō)正統(tǒng)的辦法:
基本上說(shuō),我很討厭FLASH的一些UI組件的外觀,正如惹急了我常常會(huì)自己寫(xiě)一個(gè)滾動(dòng)條而不用FLASH自帶的。
RadioButton.setSize(50,50)//里面是兩個(gè)數(shù)值,寬和高。
RadioButton.setStyle("fontFamily","Arial")//是可以的,但是換成漢字字體的時(shí)候就不一定有用了。其他論壇上有一些解決辦法如:自己在舞臺(tái)上放一個(gè)textfield將字體設(shè)置成黑體,然后用getStyle把字體抽出來(lái)給setStyle使用。
RadionButton.setStyle("fontSize",20)//是可以用,但是超級(jí)不爽的是,如果你把字體設(shè)置過(guò)大的時(shí)候它顯示出來(lái)的字是不完全的。
以下是一些setStyle的其他屬性名稱。有一些是可以用的
themeColor 組件的背景。
color 組件文本顏色。
disabledColor 禁用時(shí)的文本顏色。
fontFamily 文本的字體
fontSize 字體的大小
fontStyle 字體樣式:“常規(guī)”或“斜體”。
fontWeight 是否加粗。
RadioButton.labelPlacement可以改RadioButton和label的相對(duì)位置默認(rèn)為right
下面說(shuō)一些歪門(mén)邪道:
RadioButton是不能直接變形的,但是這個(gè)不妨礙我們把它放到MC里面之后變形。這個(gè)可以替代setsize(),但是千萬(wàn)注意,RadioButton不能旋轉(zhuǎn),宣傳會(huì)讓label完全失效。
UI的label都很垃圾,完全可以不用。自己用靜態(tài)文本寫(xiě)上去不就好了。這樣label失效的問(wèn)題也同時(shí)解決。
關(guān)于顏色,從RadioButton.setStyle()里改,當(dāng)然可以,但是有更好的辦法的時(shí)候你會(huì)選擇它么?自己用代碼或者文字描述UI的界面顏色?太不靠譜了。FLASH8支持對(duì)FLASH中間MC的混合模式的更改,用這個(gè)就可以直接改UI的顏色。當(dāng)然包括RadioButton的顏色。
方法就是直接用方塊畫(huà)一個(gè)色塊放在RadioButton上面一層,蓋住RadioButton,然后將混合模式改為疊加即可。背景色的更改方式雷同,只是如果兩個(gè)顏色修改都要用的時(shí)候要計(jì)算一下混合出來(lái)的背景色值。
注意,如果使用上面說(shuō)的辦法,我們的UI在不可用狀態(tài)下,到可用狀態(tài)下的時(shí)候Label的顏色會(huì)變回去(要不怎么說(shuō)FLASH自帶的UI很爛呢?)。這個(gè)時(shí)候就要重新在AS里刷新一下那里的顏色可以用attachMovie()和RadioButton的_x ,_y的值直接在原先的位置上再?gòu)?fù)制一個(gè)色塊出來(lái)。
相關(guān)文章
flash cs6鼠標(biāo)跟隨效果實(shí)現(xiàn)代碼分享
flash cs6想要實(shí)現(xiàn)鼠標(biāo)跟隨效果?該怎么制作呢?今天我們就來(lái)看看使用as2.0實(shí)現(xiàn)鼠標(biāo)跟隨效果的教程,需要的朋友可以參考下2019-05-19- Flash cs6怎么使用代碼輸入中英文文本?Flash cs6中可以使用文字工具直接輸入文本,也可以使用代碼來(lái)輸入文本,該怎么使用代碼輸入文本呢?請(qǐng)看下文詳細(xì)的教程,需要的朋友2018-03-11
- flash as3.0抽象類怎么定義? as3.0中有很多抽象類,該怎么定義抽象類和抽象方法呢?下面我們就來(lái)看看簡(jiǎn)單的例子,需要的朋友可以參考下http://www.dbjr.com.cn/softs/408402.2018-02-28
flash cs6中怎么使用ActionScript3.0?
flash cs6中怎么使用ActionScript3.0?flash cs6中想要使用ActionScript3.0功能,該怎么使用呢?下面我們就來(lái)看看詳細(xì)的教程,需要的朋友可以參考下2018-01-25Flash中怎么實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊決定圖像位置?
本教程給大家分享一個(gè)Flash小教程,教大家在Flash CS6中怎么實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊決定圖像位置?方法很簡(jiǎn)單,感興趣的朋友歡迎前來(lái)一起分享學(xué)習(xí)2018-01-12Flash中如何用代碼將圖片放在自己想要的舞臺(tái)位置?
本教程教腳本之家的ActionScript教程學(xué)習(xí)者在Flash中如何用代碼將圖片放在自己想要的舞臺(tái)位置,教程講解的詳細(xì),感興趣的朋友歡迎前來(lái)分享學(xué)習(xí)2017-11-20在Flash CS6中使用with函數(shù)繪制背景圖教程
本教程教腳本之家的ActionScript教程學(xué)習(xí)者如何在Flash CS6中使用with函數(shù)繪制背景圖?教程一步步講解的挺詳細(xì),方法也不難,非常適合Flash新手入門(mén)學(xué)習(xí)2017-11-18Flash怎么設(shè)置元件坐標(biāo)?flash使用代碼設(shè)置元件的坐標(biāo)的教程
Flash怎么設(shè)置元件坐標(biāo)?flash中導(dǎo)如的元件需要添加坐標(biāo),該怎么定位元件坐標(biāo)呢?下面我們就來(lái)看看flash使用代碼設(shè)置元件的坐標(biāo)的教程,需要的朋友可以參考下2017-10-11Flash怎么制作來(lái)回?fù)u擺的花朵的動(dòng)畫(huà)?
Flash怎么制作來(lái)回?fù)u擺的花朵的動(dòng)畫(huà)?Flash中想要給花朵制作一段搖擺的動(dòng)畫(huà)效果,該怎么制作呢?下面我們就來(lái)看看詳細(xì)的教程,很簡(jiǎn)單,需要的朋友可以參考下2017-05-23- Flash怎么制作流動(dòng)七彩色的文字?想要讓文字動(dòng)起來(lái),該怎么使用flash給文字制作一個(gè)流動(dòng)七彩色的動(dòng)畫(huà)呢?下面我們就來(lái)看看詳細(xì)的教程,需要的朋友可以參考下2017-04-23