LENDIEN聯電 冷暖 清淨 除溼 移動式空調 9000BTU任天堂-Switch-NS-公司貨主機-豪華全配組LG樂金 WIFI遠控雙眼小精靈掃地清潔機器人變頻版

2010年10月27日 星期三

attachMovie+動態文字欄位+遮罩

這兩天在弄一個要flash列表,要捲軸,而且因為版面美觀,沒有套用flash裡的組件,所以呢,就要自己寫scrollbar程式,資料是圖+文,要動態產生,還要能點選後跳到別的影格……
講起來很簡單,看起來這功能也很普遍,可是之前從來沒寫過……捲軸搭配遮罩就做掉了,並沒有想像中難,兩三下解決
動態產生圖文本來要用duplicateMovieClip,後來發現他不能把A movieclip裡的東西copy到B movieclip,爬了一下找到attachMovie,用法跟duplicateMovieClip類似:

.A_MovieClip是要被複製多次的對象,裡面包了影片片段pic跟動態文字title。這個影片在元件庫裡要設定連結屬性,識別名稱就用A_MovieClip,連結選「匯出給ActionScript使用」
.B_MovieClip是要放A_MovieClip眾分身的影片
.C_MovieClip裡放了一組遮罩設定,遮色片叫myMask,顯示遮色片是一個背景圖跟B_MovieClip
.先是attachMovie
C_MovieClip.B_MovieClip.attachMovie("A_MovieClip","A_MovieClip_copy"+num,C_MovieClip.B_MovieClip.getNextHighestDepth())
"A_MovieClip_copy"+num是分身的新實體名稱
.設定好分身的放置坐標後,要設定圖文內容:
loadMovie("xxxx.jpg",C_MovieClip.B_MovieClip["A_MovieClip_copy"+num].pic,"POS");
C_MovieClip.B_MovieClip["A_MovieClip_copy"+num].title.text="ABCDE";

好了,到這裡圖片正常顯示了,可是字怎麼樣都看不到,trace一下title.text,發現值都設定正確,只是畫面上怎麼也看不到他,爬文爬了2天,後來終於發現要用setMask……於是在分身生完之後加了一行
C_MovieClip.B_MovieClip.setMask(C_MovieClip.myMask);

這樣就什麼都看的到了

至於點了要跳影格,就在A_MovieClip的第一個影格裡加:
this.onRease=function(){
//要做的事
}

這樣就搞定啦~
可是還是要講一下,flash裡對attachMovie的解說也真的夠精簡的了,attachMovie明明可以放4個參數,可是他的範例通通是3個參數的……雖然說第4個參數是設定物件屬性,在attchMovie後再設也可以,可是基於程式人員精簡的習慣,能1行執行完的就不拆2行,所以特別提一下第4個參數的設定方式:
attachMovie("A_MovieClip","A_MovieClip_copy"+num,C_MovieClip.B_MovieClip.getNextHighestDepth(),{屬性名稱1:屬性值1,屬性名稱2:屬性值2,.....})

我真是太認真了,來賓請掌聲鼓勵鼓勵。

沒有留言:

張貼留言