中文字幕二区_国产精品免费在线观看_黄色网站观看_人人草人人澡_日本真实娇小xxxx

您的位置: 首頁 > 技術(shù)文檔 > 多媒體制作 > Making Things Move 第四章
FLASH小游戲開發(fā) 第二節(jié) 回到列表 Making Things Move 第三章
 Making Things Move 第四章

作者:alan98 時(shí)間: 2008-05-15 文檔類型:翻譯 來自:藍(lán)色理想

第 1 頁 渲染技術(shù) [1]
第 2 頁 渲染技術(shù) [2]
第 3 頁 渲染技術(shù) [3]
第 4 頁 渲染技術(shù) [4]
第 5 頁 渲染技術(shù) [5]
第 6 頁 渲染技術(shù) [6]
第 7 頁 渲染技術(shù) [7]
第 8 頁 渲染技術(shù) [8]
第 9 頁 渲染技術(shù) [9]

濾鏡(Filter)

濾鏡是一些位圖的效果,可以應(yīng)用于任何顯示對(duì)象。在 Flash IDE 中可以通過濾鏡面板或使用時(shí)間軸的 ActionScript 來使用濾鏡,由于這本書是關(guān)于 ActionScript 的,所以只能簡單地討論一下應(yīng)用濾鏡的方法。在 AS 3 中包括以下幾種濾鏡:

  • Drop shadow(投影濾鏡)
  • Blur(模糊濾鏡)
  • Glow(發(fā)光濾鏡)
  • Bevel(斜角濾鏡)
  • Gradient bevel(漸變斜角濾鏡)
  • Gradient glow(漸變發(fā)光濾鏡)
  • Color matrix(顏色矩陣濾鏡)
  • Convolution(卷積濾鏡)
  • Displacement map(置換圖濾鏡)

雖然不能一一介紹每種濾鏡的使用細(xì)節(jié),但大家可以通過幫助文檔來學(xué)習(xí)。在書中還會(huì)有很多濾鏡使用的例子,所以在這里只介紹一下濾鏡使用的總體方法和兩個(gè)具體實(shí)例。

創(chuàng)建濾鏡

通過使用 new 關(guān)鍵字及濾鏡名來創(chuàng)建濾鏡,并給出所需的參數(shù)。例如,創(chuàng)建一個(gè) blur filter(模糊濾鏡),最簡單的一種濾鏡,寫法入下:

var blur:BlurFilter = new BlurFilter(5, 5, 3);

參數(shù)分別為 blurX,blurY,quality。這個(gè)例子會(huì)將對(duì)象在x和y軸上模糊5個(gè)像素,模糊的品質(zhì)為中等。

另一點(diǎn)需要知道的是濾鏡在其名為 flash.filters 的包中。所以要在文件的開始處將它們導(dǎo)入進(jìn)來:

import flash.filters.BlurFilter;

如果希望導(dǎo)入包中所有的濾鏡,可以使用簡寫:

import flash.filters.*;

現(xiàn)在,我們可以直接創(chuàng)建任何類型的濾鏡了,但是一般來說,除非要使用這個(gè)包中的大部濾鏡,否則最好避免使用通配符(*),而是明確地導(dǎo)入所需要的類。這樣做只是為了能夠清楚,哪些是真正想要導(dǎo)入的而哪些不是。好了,現(xiàn)在已經(jīng)創(chuàng)建了一個(gè)模糊濾鏡,但怎么才能使它去模糊一個(gè)對(duì)象呢?

任何一個(gè)顯示對(duì)象都有一個(gè)名為 filters 的屬性,這是一個(gè)包括了所有濾鏡的數(shù)組,因?yàn)槿绻粋(gè)對(duì)象要應(yīng)用多個(gè)濾鏡,那么只需要再將模糊濾鏡放到數(shù)組中即可。樂觀地看,應(yīng)用濾鏡應(yīng)該可以像使用基本數(shù)組操作那樣簡單,push,就像這樣 mySprite.filters.push(blur);,但是很遺憾,沒有這么簡單。在整個(gè)數(shù)組賦值為 filters 之前,F(xiàn)lash 不關(guān)心 filters 數(shù)組的變化。

如果已知對(duì)象沒有應(yīng)用任何的濾鏡,或想要重寫它們,只需要新建一個(gè)數(shù)組,將我們的濾鏡粘在上面,再將這個(gè)新數(shù)組賦給 filters 屬性就可以了。先來試一下,下面一個(gè)文檔類 Filters.as,創(chuàng)建了一個(gè) sprite 影片并且在里面繪制了一個(gè)黃色的正方形,然后,創(chuàng)建一個(gè)濾鏡,加入數(shù)組中,最后將數(shù)組賦給 sprite 的 filters 屬性:

package {
 import flash.display.Sprite;
 import flash.filters.BlurFilter;
 public class Filters extends Sprite {
  public function Filters() {
   init();
  }
  private function init():void {
   var sprite:Sprite = new Sprite();
   sprite.graphics.lineStyle(2);
   sprite.graphics.beginFill(0xffff00);
   sprite.graphics.drawRect(100, 100, 100, 100);
   sprite.graphics.endFill();
   addChild(sprite);
   var blur:BlurFilter = new BlurFilter(5, 5, 3);
   var filters:Array = new Array();
   filters.push(blur);
   sprite.filters = filters;
  }
 }
}

瞧!出現(xiàn)了一個(gè)模糊的黃色方塊兒。重要的部分用黑體著重,我們可以簡寫一點(diǎn):

var blur:BlurFilter = new BlurFilter(5, 5, 3);
var filters:Array = [blur];
sprite.filters = filters;

或再短一點(diǎn):

sprite.filters = [new BlurFilter(5, 5, 3)];

在創(chuàng)建數(shù)組的同時(shí),將濾鏡放進(jìn)去,并應(yīng)用 filters 屬性,這樣一來,F(xiàn)lash 會(huì)很高興。

但是如果已經(jīng)有了濾鏡并希望繼續(xù)使用,這時(shí),但又不確定是否有濾鏡存在,那該怎么辦呢?在 Flash 8 中,這是件很麻煩的事,因?yàn)橐粋(gè)顯示對(duì)象的 filters 屬性如果沒有應(yīng)用濾鏡,那么它將是未定義(undefined)的。但在 AS 3 中, filters 數(shù)組總是保持為一個(gè)空數(shù)組,只需要給數(shù)組賦值,將濾鏡 push 進(jìn)去,并將其賦給對(duì)象的 filters 屬性即可,方法如下:

var filters:Array = sprite.filters;
filters.push(new BlurFilter(5, 5, 3));
sprite.filters = filters;

如果使用這種方法,那么無論是否有濾鏡存在都沒有問題,濾鏡只是被加入到數(shù)組列表中而已。因?yàn)?filters 屬性是一套成熟的數(shù)組,所以可以使用不同的數(shù)組操作方法。比如,使用 concat 方法:

sprite.filters = sprite.filters.concat(new BlurFilter(5, 5, 3));

我不認(rèn)為這是個(gè)“正確”的做法,大家只要知道將一個(gè)包涵有濾鏡的數(shù)組賦給 filters 屬性就足夠了。

動(dòng)態(tài)濾鏡

現(xiàn)在我們已經(jīng)基本上知道了如何在 ActionScript 中使用濾鏡了。接下來,用已經(jīng)學(xué)過的知識(shí),制作一個(gè)動(dòng)態(tài)濾鏡。這個(gè)效果,使用文檔類 AnimatedFilters.as:

package {
 import flash.display.Sprite;
 import flash.events.Event;
 import flash.filters.DropShadowFilter;
 public class AnimatedFilters extends Sprite {
  private var filter:DropShadowFilter;
  private var sprite:Sprite;
  public function AnimatedFilters() {
   init();
  }
  private function init():void {
   sprite = new Sprite();
   sprite.graphics.lineStyle(2);
   sprite.graphics.beginFill(0xffff00);
   sprite.graphics.drawRect(-50, -50, 100, 100);
   sprite.graphics.endFill();
   sprite.x = 200;
   sprite.y = 200;
   addChild(sprite);
   filter = new DropShadowFilter(0, 0, 0, 1, 20, 20, .3);
   addEventListener(Event.ENTER_FRAME, onEnterFrame);
  }
  private function onEnterFrame(event:Event):void {
   var dx:Number = mouseX - sprite.x;
   var dy:Number = mouseY - sprite.y;
   filter.distance = -Math.sqrt(dx * dx + dy * dy) / 10;
   filter.angle = Math.atan2(dy, dx) * 180 / Math.PI;
   sprite.filters = [filter];
  }
 }
}

首先在 sprite 中畫一個(gè)正方形,正方形在 sprite 的居中位置,然后將 sprite 移動(dòng)到舞臺(tái)中間,用一些默認(rèn)屬性創(chuàng)建投影濾鏡(DropShadowFilter)。
添加一個(gè) enterFrame 事件的偵聽器及處理函數(shù):onEnterFrame 方法,用于計(jì)算角度(angle)及使用三角函數(shù)計(jì)算 sprite 影片與鼠標(biāo)的距離(distance)。使用 angle 和 distance 設(shè)置投影濾鏡的 angle 和 distance 屬性,最后將這個(gè)濾鏡再應(yīng)用到 sprite 上。請(qǐng)注意,我們不需要每次都創(chuàng)建一個(gè)新的濾鏡,可以繼續(xù)使用同一個(gè)濾鏡,只需要改變它的屬性即可。然而,只是改變這些屬性也不能更新 sprite 影片的顯示。因此,還需要再將變化過的濾鏡效果賦值給 filters 屬性。

出處:藍(lán)色理想
責(zé)任編輯:bluehearts

上一頁 渲染技術(shù) [7] 下一頁 渲染技術(shù) [9]

◎進(jìn)入論壇RIA設(shè)計(jì)與應(yīng)用版塊參加討論

相關(guān)文章 更多相關(guān)鏈接
FLASH小游戲開發(fā) 第二節(jié)
用photoshop制作文字波動(dòng)動(dòng)畫
制作旗幟飄揚(yáng)動(dòng)畫
Making Things Move 第三章
Silverlight制作逐幀動(dòng)畫
作者文章
Making Things Move 第三章
Making Things Move 第二章
Making Things Move 第一章
貪吃蛇游戲代碼翻譯
關(guān)鍵字搜索 常規(guī)搜索 推薦文檔
熱門搜索:CSS Fireworks 設(shè)計(jì)比賽 網(wǎng)頁制作 web標(biāo)準(zhǔn) 用戶體驗(yàn) UE photoshop Dreamweaver Studio8 Flash 手繪 CG
站點(diǎn)最新 站點(diǎn)最新列表
周大福“敬•自然”設(shè)計(jì)大賽開啟
國際體驗(yàn)設(shè)計(jì)大會(huì)7月將在京舉行
中國國防科技信息中心標(biāo)志征集
云計(jì)算如何讓安全問題可控
云計(jì)算是多數(shù)企業(yè)唯一擁抱互聯(lián)網(wǎng)的機(jī)會(huì)
阿里行云
云手機(jī)年終巨獻(xiàn),送禮標(biāo)配299起
阿里巴巴CTO王堅(jiān)的"云和互聯(lián)網(wǎng)觀"
1499元買真八核 云OS雙蛋大促
首屆COCO桌面手機(jī)主題設(shè)計(jì)大賽
欄目最新 欄目最新列表
淺談JavaScript編程語言的編碼規(guī)范
如何在illustrator中繪制臺(tái)歷
Ps簡單繪制一個(gè)可愛的鉛筆圖標(biāo)
數(shù)據(jù)同步算法研究
用ps作簡單的作品展示頁面
CSS定位機(jī)制之一:普通流
25個(gè)最佳最閃亮的Eclipse開發(fā)項(xiàng)目
Illustrator中制作針線縫制文字效果
Photoshop制作印刷凹凸字體
VS2010中創(chuàng)建自定義SQL Rule
>> 分頁 首頁 前頁 后頁 尾頁 頁次:8/91個(gè)記錄/頁 轉(zhuǎn)到 頁 共9個(gè)記錄

藍(lán)色理想版權(quán)申明:除部分特別聲明不要轉(zhuǎn)載,或者授權(quán)我站獨(dú)家播發(fā)的文章外,大家可以自由轉(zhuǎn)載我站點(diǎn)的原創(chuàng)文章,但原作者和來自我站的鏈接必須保留(非我站原創(chuàng)的,按照原來自一節(jié),自行鏈接)。文章版權(quán)歸我站和作者共有。

轉(zhuǎn)載要求:轉(zhuǎn)載之圖片、文件,鏈接請(qǐng)不要盜鏈到本站,且不準(zhǔn)打上各自站點(diǎn)的水印,亦不能抹去我站點(diǎn)水印。

特別注意:本站所提供的攝影照片,插畫,設(shè)計(jì)作品,如需使用,請(qǐng)與原作者聯(lián)系,版權(quán)歸原作者所有,文章若有侵犯作者版權(quán),請(qǐng)與我們聯(lián)系,我們將立即刪除修改。

您的評(píng)論
用戶名:  口令:
說明:輸入正確的用戶名和密碼才能參與評(píng)論。如果您不是本站會(huì)員,你可以注冊(cè) 為本站會(huì)員。
注意:文章中的鏈接、內(nèi)容等需要修改的錯(cuò)誤,請(qǐng)用報(bào)告錯(cuò)誤,以利文檔及時(shí)修改。
不評(píng)分 1 2 3 4 5
注意:請(qǐng)不要在評(píng)論中含與內(nèi)容無關(guān)的廣告鏈接,違者封ID
請(qǐng)您注意:
·不良評(píng)論請(qǐng)用報(bào)告管理員,以利管理員及時(shí)刪除。
·尊重網(wǎng)上道德,遵守中華人民共和國的各項(xiàng)有關(guān)法律法規(guī)
·承擔(dān)一切因您的行為而直接或間接導(dǎo)致的民事或刑事法律責(zé)任
·本站評(píng)論管理人員有權(quán)保留或刪除其管轄評(píng)論中的任意內(nèi)容
·您在本站發(fā)表的作品,本站有權(quán)在網(wǎng)站內(nèi)轉(zhuǎn)載或引用
·參與本評(píng)論即表明您已經(jīng)閱讀并接受上述條款
推薦文檔 | 打印文檔 | 評(píng)論文檔 | 報(bào)告錯(cuò)誤  
專業(yè)書推薦 更多內(nèi)容
網(wǎng)站可用性測試及優(yōu)化指南
《寫給大家看的色彩書1》
《跟我去香港》
眾妙之門—網(wǎng)站UI 設(shè)計(jì)之道
《Flex 4.0 RIA開發(fā)寶典》
《贏在設(shè)計(jì)》
犀利開發(fā)—jQuery內(nèi)核詳解與實(shí)踐
作品集 更多內(nèi)容

雜⑦雜⑧ Gold NORMANA V2