close

一個scroll bar 的元件就可以遇到這麼多的問題,真是不容小覷的東西阿~

今天遇到的問題是,我竟然沒辦法調整動態文字欄位的透明度,真是天殺的標準魔鬼藏在細節裡面。

先說明一下我想做到的效果,就是切換下一篇文字內容載入時,能夠有fade in (淡入)的效果,這時也才發現我動不了動態文字欄位的透明度,

當下想到的偷雞法,也是用了載完之後使用visible = true的方法,不過這對流暢度要求比較高一點的我來說,這樣半調子的效果真是引人發噱。

因此還是乖乖找一下解決的方法,當然要順便理解一下原因......

 

找到了這篇  來自 Ticore's blog

Flash 8 半透明輸入、動態文字欄位

大概講解了一下 :

Flash 8 以前,假如要做半透輸入文字欄位
必須要嵌入字型.....

拜 Flash 8 新增的功能所賜 - 點陣圖快取、濾鏡、混合模式...
已經不需要嵌入字型
就可以做到半透明輸入、動態文字欄位

方式很多種
原理都是讓 Flash Player 底層將文字欄位預先以點陣圖方式處理過
這樣就可以套用 alpha 屬性了

當然你也可以自己用 ActionScript 將文字欄位做點陣圖處理
不過比較麻煩一點

強迫 Flash Player 預先以點陣圖渲染的方式:

  1. 使用混合模式 (Blend Mode)
  2. 使用點陣圖快取 (MovieClip.cacheAsBitmap)
  3. 套用濾鏡
...

不過這些對我來說是比較麻煩了一點,

最後推薦的方式

就是在此動態文字欄位之外,再包一個sprite 或是 movieclip

把這個sprite.blendMode = BlendMode.LAYER; 

(大部分的Blendmode函數中的屬性都能使用,但是最好的方式是使用BlendMode.LAYER,因為它會强制為其顯示對象設定一組透明度。)

接著就可以去動此sprite裡的元件的透明度了......爽阿!

(貼心小提醒 : 寫在as檔裡面的話要import flash.display.BlendMode; )

arrow
arrow
    全站熱搜

    阿酷 發表在 痞客邦 留言(0) 人氣()