位置:首頁 > 軟件操作教程 > UI設(shè)計軟件 > Adobe Dreamweaver > 問題詳情

文字顏色緩動特效

提問人:周麗平發(fā)布時間:2021-05-27

代碼詳解:

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

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

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

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

var glowF:GlowFilter;//聲明一個發(fā)光濾鏡類實例glowF

var matrix:Matrix=new Matrix();//聲明一個矩陣類實例matrix

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

var sh:Shape=new Shape();//聲明一個矢量圖類實例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è)置漸變填充樣式(線性漸變,顏色塊顏色,透明度,顏色塊位置,矩陣)

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

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

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

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

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

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

var txt:TextField=new TextField();//聲明一個文本類實例txt

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

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

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

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

txt.x=stage.stageWidth/2-txt.width/2;//文本的X坐標,把文本放在舞臺中間

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

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

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

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

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

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

targetB=color&0xff;//targetB獲取color中藍色通道數(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實例化(顏色,透明度,X方向模糊值,Y方向模糊值)

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

}

//============說明

var txt1:TextField=new TextField();//聲明一個文本類實例txt

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

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

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

txt1.x=20;//文本txt的X坐標獲取20

txt1.y=360;//文本txt的Y坐標獲取360

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

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

繼續(xù)查找其他問題的答案?

回復(0)
返回頂部