最近開始做as3,遇到很多問題,今天下午集中解決了一下,決定總結一下,便於以後溫故而知新嘛。
一、用代碼添加文字框一般都是大量新增,但是添加之後如何對文字框進行操作呢?這時候可以設一個數組,然後將產生的文字框添加到數組中,通過數組對文字框進行操作。
1、下面的代碼用於產生3個文字框並將其添加進數組
var txt_Arr:Array = new Array();
for (var j = 0; j <3; ++j) {
var mytxt_txt:TextField = new TextField();
mytxt_txt.selectable=false;
mytxt_txt.x=j*80+100;
mytxt_txt.y=i*25+100;
mytxt_txt.width=55;
mytxt_txt.height=25;
txt_Arr.push(mytxt_txt);
addChild(mytxt_txt);
}
2、然後可以對這個數組進行操作,這個數組的每一項均是一個文字框
for (var j = 0; j <3; ++j) {
txt_Arr[j].text = "第" + (j+1) + "個文字框";
}
3、可以看到舞台上有三個文字框,裡面分別顯示"第1個文字框","第2個文字框","第3個文字框"。
二、為了控制起來方便,將不同的介面放入不同的影片剪輯裡面去了,但是發現影片剪輯無法添加鍵盤按下偵聽,試了很多辦法,終於找到原因,需要先設定舞台的焦點為此影片剪輯。
1、設定此舞台的偵聽為影片剪輯mc
stage.focus=mc;
2、這時,我們就可以給影片剪輯添加鍵盤按下偵聽了
mc.addEventListener(KeyboardEvent.KEY_DOWN,key_down);
否則,我們就只能寫stage.addEventListener(KeyboardEvent.KEY_DOWN,key_down);
3、當設定了此影片剪輯為舞台的焦點之後,發現一個問題,就是影片剪輯上會出現預設的那個黃色的預設焦點框,特別醜,用下面這句話可以去掉黃色框。
mc.focusRect = false;
三、發現雙擊事件出問題,點很多下才有一次觸發,偶發性很強。後來無意中添加了一句話就正常了。根據這句話判斷有可能因為是去優先偵聽其孩子的滑鼠事件了,將其孩子結點的滑鼠事件給禁用掉就可以了。
mc.mouseChildren = false;