實現文字欄位透明效果的幾種方法

來源:互聯網
上載者:User
透明

  Flash Player 6就開始支援文字欄位(TextField)透明度屬性(alpha),但是TextField._alpha只支援使用嵌入字型輪廓呈現的文字欄位(TextField.embedFonts = true),對預設的裝置字型呈現的文字欄位無效。

  下面先介紹TextField._alpha的實現方式,以下代碼設定my_txt文本的透明度為20%。點擊庫->建立字型(New Font)選項,建立一字型元件(font symbol),然後設定該字型元件連結標識符為“ my font”。

var my_fmt:TextFormat = new TextFormat();
my_fmt.font = "my font";//'my font'為庫中字型元件的連結標識符
this.createTextField("my_txt",this.getNextHighestDepth(), 10, 10, 100, 22);
my_txt.border = true;
my_txt.embedFonts = true;//使用嵌入字型輪廓呈現文字欄位
my_txt.text = "Hello World";
my_txt.setTextFormat(my_fmt);
my_txt._alpha = 20;

  以上方法用到了字型元件,使用起來不是很方便,而且由於發布時打包了字型導致swf檔案相對比較大。想更多瞭解字型元件,參看這裡Flash TechNotes: Using font symbolsCreating font symbols

  以下兩種方法拋棄TextField._alpha,類比實現文字欄位的透明效果。

  一、通過設定顏色類比

function setAlpha(obj, alpha) {
  var rgb = "0x"+(255*(100-alpha)/100).toString(16);
  rgb = rgb << 16 | rgb << 8 | rgb;
  obj.backgroundColor |= rgb;
  obj.borderColor |= rgb;
  obj.textColor |= rgb;
}

  二、通過建立一影片剪輯作文本的蒙層

function setAlpha(obj, alpha) {
  var tmp_mc_name:String = obj._name+"_alphamask_mc";
  var tmp_mc:MovieClip = eval(tmp_mc_name);
  if (!tmp_mc) {
     tmp_mc = this.createEmptyMovieClip(tmp_mc_name,this.getNextHighestDepth());
     tmp_mc.beginFill(0xFFFFFF);
     tmp_mc.moveTo(0, 0);
     tmp_mc.lineTo(20, 0);
     tmp_mc.lineTo(20, 10);
     tmp_mc.lineTo(0, 10);
     tmp_mc.lineTo(0, 0);
     tmp_mc.endFill();
  }
  tmp_mc._x = obj._x;
  tmp_mc._y = obj._y;
  tmp_mc._width = (obj.border) ? obj._width+1 : obj._width;
  tmp_mc._height = (obj.border) ? obj._height+1 : obj._height;
  tmp_mc._alpha = 100-alpha;
}

  使用方法:

this.createTextField("my_txt", this.getNextHighestDepth(), 10, 10, 100, 22);
my_txt.text = "Hello World";
setAlpha(my_txt,50);//設定my_txt文本透明度為50%



相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。