使用Flash組件創(chuàng)建單選按鈕CheckBox
首先我們新建一個(gè)空白文檔,在文檔上方寫上“年齡選擇”幾個(gè)字。其次我們按下Ctrl F7,打開組件面板,拖一個(gè)CheckBox控件到庫里。動態(tài)創(chuàng)建單選組件新建一個(gè)文檔類,我們輸入以下代碼,旨在先動態(tài)創(chuàng)建
首先我們新建一個(gè)空白文檔,在文檔上方寫上“年齡選擇”幾個(gè)字。
其次我們按下Ctrl F7,打開組件面板,拖一個(gè)CheckBox控件到庫里。
動態(tài)創(chuàng)建單選組件
新建一個(gè)文檔類,我們輸入以下代碼,旨在先動態(tài)創(chuàng)建我們需要數(shù)量的單選組件在舞臺上。
```actionscript
package{
import flash.display.Sprite;
import ;
/
* CheckBox組件測試使用
* @author Tiger
* 2012/3/16 15:05
*/
public class TextCheckBox extends Sprite{
private var ageList:Array ["小于18歲", "18歲至28歲", "29歲至39歲", "40歲至50歲", "50歲至60歲", "60歲以上"];
private var checkList:Array [];
public function TextCheckBox(){
createCheckList();
}
private function createCheckList():void{
var len:int ageList.length;
for (var i:int 0; i < len; i ){
var mCB:CheckBox new CheckBox();
ageList[i];
mCB.x 210;
mCB.y 80 i * (mCB.height 10);
(mCB);
checkList[i] mCB;
}
}
}
}
```
寫完這段函數(shù)并將文檔類關(guān)聯(lián)到文件屬性面板上,發(fā)布測試,你便會發(fā)現(xiàn)舞臺上已經(jīng)有了幾個(gè)顯示年齡的控件,只是這個(gè)時(shí)候控件是可以多選的。
實(shí)現(xiàn)單選功能
一個(gè)人的年齡只可能滿足上面的某一個(gè)條件,不可能同時(shí)滿足,所以說我們要給這些組件添加選中事件處理,選中某一個(gè)時(shí),同時(shí)取消別的被選項(xiàng)目,繼續(xù)晚上創(chuàng)建函數(shù)如下:
```actionscript
private function createCheckList():void{
var len:int ageList.length;
for (var i:int 0; i < len; i ){
var mCB:CheckBox new CheckBox();
ageList[i];
mCB.x 210;
mCB.y 80 i * (mCB.height 10);
(, selectCBHandler);
(mCB);
checkList[i] mCB;
}
}
private function selectCBHandler(e:Event):void{
var mCB:CheckBox as CheckBox;
var len:int checkList.length;
for (var i:int 0; i < len; i ){
if (checkList[i] mCB) continue;
checkList[i].selected false;
}
}
```
再次發(fā)布測試,此時(shí)我們可以實(shí)現(xiàn)單選了。
美化單選按鈕
現(xiàn)在的問題是,我們單選了某個(gè)年齡,但是沒有任何地方顯示出來單選的內(nèi)容提示,同時(shí)單選按鈕鼠標(biāo)移上去沒有鼠標(biāo)手出現(xiàn),而且單選按鈕的文字太小,看不清楚。所以我們繼續(xù)把代碼完善到如下所示:
```actionscript
//創(chuàng)建單選按鈕
private function createCheckList():void{
var len:int ageList.length;
for (var i:int 0; i < len; i ){
var mCB:CheckBox new CheckBox();
ageList[i];
mCB.x 210;
mCB.y 80 i * (mCB.height 10);
(120, 25);
true;
(, selectCBHandler);
setFormat(mCB);
(mCB);
checkList[i] mCB;
}
}
//設(shè)置外觀
private function setFormat(cb:CheckBox):void{
("textFormat", mForMat);
}
//處理點(diǎn)擊事件
private function selectCBHandler(e:Event):void{
var mCB:CheckBox as CheckBox;
var len:int checkList.length;
for (var i:int 0; i < len; i ){
if (checkList[i] mCB) continue;
checkList[i].selected false;
}
txtInfo.text "我的年齡:" ;
}
```
現(xiàn)在發(fā)布測試,我們希望的功能全部有了,一個(gè)Flash控件做的年齡選擇功能就完成了。