Flash高級技巧:全新Flash鏡頭的控制處理_Flash教程
教程Tag:暫無Tag,歡迎添加,賺取U幣!
推薦:Flash教程:純AS代碼制作的燃燒的火焰效果燃燒的火:純AS代碼火焰效果,F(xiàn)lash教程。希望大家理解把握!效果如下。希望需要的朋友拿去用,順便也希望拿走代碼的朋友能頂起來,不要只拿代碼不回帖,到時
前言: 該教程介紹了一種有別于傳統(tǒng)的Flash鏡頭控制方式, 其原理簡單但確能在某種程度上提高工作效率, 增加動畫的可看性, 讓一個動畫同時擁有不同角度的”拍攝”方式.那么就請先看以下示例:乍一看好似也看不出什么端倪, 無非就是過渡時多了雙向緩沖罷了, 其實(shí)在這個動畫中我并沒有對圖片作任何移動或縮放, 唯一處理的是一個稱為”camera”的影片剪輯, 如下:
在影片中單純的控制鏡頭的行為, 然后輸出動畫的時候, 動畫的內(nèi)容就是鏡頭內(nèi)的內(nèi)容.
有愛好的直接進(jìn)入教程內(nèi)容
(注重: 教程對于初級的操作將不做多d 說明和截圖, 假如是初級用戶請先熟悉Flash一段時間再來學(xué)習(xí)此教程, 另外出于版本原因, 這里只提供Flash8.0版的源文件, 低版本的建議升級, 如真有需要低版本的源文件, 請E-mail聯(lián)系: [email protected])
一: 普通用戶
對原理沒什么愛好的或AS把握不多的, 我們直接打開原代碼, 我來說明下如何使用即可.
[源文件下載]:點(diǎn)擊這里下載Fla源文件
打開源文件, 你可以大致了解一下, 內(nèi)容和元件不多, 看一看其實(shí)就知道該怎么操作了.
當(dāng)你要作自己的動畫的時候, 具體操作如下:
1: 更改場景大小, 情況自定
2: 打開庫(順便查看下庫里的文件), 雙擊”鏡頭”, 更改鏡頭大小, 與場景相同, 并且居中對齊
3: 返回場景, 解開遮罩鎖, 居中遮罩層的鏡頭,移動”影片載體”, 使藍(lán)色區(qū)域與場景重合(用邊框模式查看, 方便對齊)
4: 打開庫, 雙擊”影片內(nèi)容”, 這里就是主要動畫的編輯位置了
5: 在場景中, 鏡頭可根據(jù)情況和需要進(jìn)行操作, 亦可刪除, 結(jié)合使用, 沒有一定的方式, 究竟制作動畫的類型和情況很多, 這只是一種選擇方式, 至于適不適合還是依個人情況而定,更多的還是習(xí)慣問題…
二: 進(jìn)階的使用, 多鏡頭處理
這是這個鏡頭控制最有趣的地方了, 當(dāng)你對源文件的AS作了初步了解的時候, 你會發(fā)現(xiàn)其實(shí)都是很基礎(chǔ)的AS, 唯一的關(guān)聯(lián)就是鏡頭”camera” , 那么假如我在動畫中使用的多個鏡頭, 比如”camera1” “camera2””camera3”…
那么只要定義一個全局”camera”, 就可以隨意的在動畫中變換鏡頭了, 具體請查看下面這個flash:
[鬼斗測試版右鍵下載](建議下載后觀看,否則后果自負(fù)…)
(播放片頭動畫的時候按”空格”可跳過, 然后在格斗過程中按”C”切換鏡頭, Fast!! ) 當(dāng)然這還不是應(yīng)用的典范, 典范就等著大家去創(chuàng)造了!!
在源文件中修改很簡單, 使用eval 函數(shù), 假如對eval函數(shù)不了解的下面有簡單介紹:
1: 由于鏡頭的命名方式是camera1,2,3…所以就在主時間軸的幀上定義一個came , 作為數(shù)字1,2,3…的代號
2: 修改影片載體和影片內(nèi)容上的AS ,如下:
影片載體:
onClipEvent (enterframe) {
setProperty(this, _xscale, 10000/getProperty(eval("this.all.camera" _root.came), _xscale));
setProperty(this, _yscale, 10000/getProperty(eval("this.all.camera" _root.came), _yscale));
}影片內(nèi)容:
onClipEvent (EnterFrame) {
setProperty(this, _x, -getProperty(eval("this.camera" _root.came), _x));
setProperty(this, _y, -getProperty(eval("this.camera" _root.came), _y));
}3:可根據(jù)不同情況去定義came,
例:
came = 1 ; 就是使用鏡頭1;
came = random (3) 1;
就是隨機(jī)鏡頭;
也可以用按鈕控制鏡頭, 或者AS控制. 記得控制的是 _root.came ;
三: 進(jìn)階的基礎(chǔ)上再進(jìn)階, 不同鏡頭在不同時間點(diǎn)上的切換
假設(shè)一個動畫的某場景中有2個人物, 畫面出現(xiàn)有20幀, 然后有2個鏡頭(camera1, camera2), 一個對準(zhǔn)左邊的人物, 一個對準(zhǔn)右邊的人物, 然后鏡頭1控制左邊的人物20幀后, 要使鏡頭2再次控制右邊的人物20幀, 這時就要在第二十幀加入代碼:
//假設(shè)該場景出現(xiàn)的幀是40;
gotoAndPlay(40)
_root.came = 2假如單純這樣的話, 那動畫不就進(jìn)入無限循環(huán)了, 那就再想個方法吧:
在本時間軸上定義一個數(shù): ova = 1; 然后在第60幀添加代碼:
if (ova == 1) {
_root.came = 2
gotoAndPlay(20);
ova = ova 1;
}這樣動畫就只會循環(huán)1次而已, 因?yàn)榕卸l件是ova == 1, 而第二次回來的時候ova已經(jīng) ==2 了
以上就是該”鏡頭”的使用方式了, 至于還有沒有更多的拓展性, 就看大家的巧思了!!
--------*關(guān)于eval函數(shù)--------------------------------------------------------------
其實(shí)AS我也是自學(xué)的, 算基礎(chǔ)型的吧, 所以復(fù)雜的不會, 更多的是變相的搭配, 從0到如今的過程中自然會碰到很多問題, 每一次的突破就是一次進(jìn)步, 所以致所有Flash初級愛好者, 別異想天開的希望有人能教你, 這個自學(xué)的過程所必經(jīng)的, 假如走不了, 過不去, 那玩玩就好, 別當(dāng)真啊…哈哈…(自學(xué)在于書本以及網(wǎng)絡(luò)上的教程以及實(shí)踐)
eval: 針對含有變量的表達(dá)式的引用, 中階用戶在AS上經(jīng)常會碰到相對路徑, 絕對路徑, 相對引用等問題, _root, _parent, “mc_name”等…當(dāng)mc_name中包含變量, 比如: 當(dāng)came為動態(tài)變量時, 用以下方式將無法得到正確引用;
came = random(3) 1 //時間軸
setProperty(_root.camera _root.came , _x, 300) //某MC上的命令, 以前我就陷入了這個僵局, 后來意外看到eval函數(shù),才…)
對于路徑中含有多字符串組合的, 應(yīng)采用eval(“_root.camera” _root.came)的格式來返回正確的目標(biāo)路徑
(解釋可能不怎么清楚, 或有誤點(diǎn), 自己看自帶的help 慢慢體會吧, 自學(xué)AS最好的方式還是Flash的自帶help)
最后提供一個說明性較強(qiáng)的源文件, 還不了解的同學(xué)就下載來多學(xué)習(xí)研究吧 ,希望我的這個小教程能對你有所幫助.[源文件下載]:點(diǎn)擊這里下載源文件
分享:Flash片頭loading與V2組件相關(guān)問題很早之前我曾經(jīng)說過“沒有l(wèi)oading的Flash,不是完整的flash”。我想那個句話可能偏激了。因?yàn)橛袝r候一些不到10k的flash,確實(shí)不需要做什么loading。但我始終認(rèn)
相關(guān)Flash教程:
- 相關(guān)鏈接:
- 教程說明:
Flash教程-Flash高級技巧:全新Flash鏡頭的控制處理
。