FLASH文字顏色緩動(dòng)特效

若水221147 分享 時(shí)間:
  代碼詳解:

  [SWF(backgroundColor=0x000000,width=550,height=400)]//設(shè)置場(chǎng)景背景色、大小

  var r:uint=0,g:uint=0,b:uint=0;//聲明無(wú)符號(hào)整數(shù)型變量r、g、b,初始值都是0

  var color:uint,targetR:uint,targetG:uint,targetB:uint;//聲明無(wú)符號(hào)整數(shù)型變量color、targetR、targetG、targetB

  var filtersCo:uint,filtersR:uint,filtersG:uint,filtersB:uint;//聲明無(wú)符號(hào)整數(shù)型變量filtersCo、filtersR、filtersG、filtersB

  var glowF:GlowFilter;//聲明一個(gè)發(fā)光濾鏡類(lèi)實(shí)例glowF

  var matrix:Matrix=new Matrix();//聲明一個(gè)矩陣類(lèi)實(shí)例matrix

  matrix.createGradientBox(550,200,0,0,0);//設(shè)置矢量圖漸變填充所需矩陣樣式(寬550,高200,旋轉(zhuǎn)0,X方向平移0,Y方向平移0)

  var sh:Shape=new Shape();//聲明一個(gè)矢量圖類(lèi)實(shí)例sh

  sh.graphics.beginGradientFill(GradientType.LINEAR,[0xff0000,0xffff00,0x00ff00,0x00ffff,0x0000ff,0xff00ff,0xff0000],[1,1,1,1,1,1,1],[0,42,84,126,168,210,255],matrix);//設(shè)置漸變填充樣式(線(xiàn)性漸變,顏色塊顏色,透明度,顏色塊位置,矩陣)

  sh.graphics.drawRect(0,0,550,200);//在sh中畫(huà)矩形(左上角坐標(biāo)(0,0),寬550,高200)

  sh.graphics.endFill();//結(jié)束填充

  var bmd:BitmapData=new BitmapData(550,200);//聲明一個(gè)位圖數(shù)據(jù)類(lèi)實(shí)例bmd(寬550,高200)

  var bim:Bitmap=new Bitmap(bmd);//聲明一個(gè)位圖包裝類(lèi)實(shí)例bim,用于包裝bmd

  bmd.draw(sh);//位圖bmd為矢量圖sh拍照

  addChild(bim);//把位圖bim添加顯示列表

  var txt:TextField=new TextField();//聲明一個(gè)文本類(lèi)實(shí)例txt

  addChild(txt);//把文本txt添加顯示列表

  txt.defaultTextFormat=new TextFormat("華文琥珀",60);//設(shè)置文本格式(字體,字號(hào))注意這樣設(shè)置要放在內(nèi)容前面才起作用

  txt.text="多特軟件站歡迎您!";//文本內(nèi)容

  txt.autoSize=TextFieldAutoSize.CENTER;//文本txt自動(dòng)調(diào)整大小并居中對(duì)齊

  txt.x=stage.stageWidth/2-txt.width/2;//文本的X坐標(biāo),把文本放在舞臺(tái)中間

  txt.y=stage.stageHeight*3/4-txt.height/2;//文本的Y坐標(biāo),把文本放在縱向3/4處

  addEventListener(Event.ENTER_FRAME,frame);//添加幀頻事件偵聽(tīng),調(diào)用函數(shù)frame

  function frame(e) {//定義幀頻事件函數(shù)frame

       color=bmd.getPixel(mouseX,mouseY);//color獲取位圖鼠標(biāo)處像素點(diǎn)的顏色

       targetR=color>>16;//targetR獲取color中紅色通道數(shù)值

       targetG=color>>8&0xff;//targetG獲取color中綠色通道數(shù)值

       targetB=color&0xff;//targetB獲取color中藍(lán)色通道數(shù)值

       r+=uint((targetR-r)*0.03);//r每幀增加targetR與r差的0.03倍

       g+=uint((targetG-g)*0.03);//g每幀增加targetG與g差的0.03倍

       b+=uint((targetB-b)*0.03);//b每幀增加targetB與b差的0.03倍

       txt.textColor=r<<16|g<<8|b;//把r、g、b合成顏色付值給文字txt

       filtersR=0xff-r;//filtersR獲取0xff與r的差

       filtersG=0xff-g;//filtersG獲取0xff與g的差

       filtersB=0xff-b;//filtersB獲取0xff與b的差

       filtersCo=filtersR<<16|filtersG<<8|filtersB;//把filtersR、filtersG、filtersB合成顏色付值給filtersCo

       glowF=new GlowFilter(filtersCo,1,8,8);//發(fā)光濾鏡glowF實(shí)例化(顏色,透明度,X方向模糊值,Y方向模糊值)

       txt.filters=[glowF];//文字應(yīng)用發(fā)光濾鏡

  }

  //============說(shuō)明

  var txt1:TextField=new TextField();//聲明一個(gè)文本類(lèi)實(shí)例txt

  addChildAt(txt1,numChildren-1);//把txt添加到顯示列表的最底層

  txt1.defaultTextFormat=new TextFormat("華文隸書(shū)",20,0x00cc33);//為txt設(shè)置文本格式(隸書(shū),30號(hào),深綠色)

  txt1.text="全腳本文字顏色緩動(dòng)效果     鼠標(biāo)滑動(dòng)七彩圖改變文字顏色";//文本txt內(nèi)容

  txt1.x=20;//文本txt的X坐標(biāo)獲取20

  txt1.y=360;//文本txt的Y坐標(biāo)獲取360

  txt1.width=550;//文本txt的寬度獲取220

  txt1.filters=[new DropShadowFilter(2,45,0x0)];//為文本添加投影濾鏡(距離5,方向45度,顏色黑色)
14019