2004/6/28

使用Tween要注意的小地方

這次的作品中用了許多tween來做特效,十分方便好用,調整或修改也十分容易,大大提昇製作時間。
但有個地方要注意,就是什麼時候用完,要清的最好還是清掉。

以廖添丁遊戲中「故事介紹」單元為例,我做了一個文字向上跑的說明畫面,就像是電影劇終時的工作人員名單,當跑完時會執行一個函式再跳到指定的場景。而在此同時,右下角也有一個skip的按鈕,可跳過說明直接到達指定場景。

寫起來會像是
gotoFrame=function(){
_root.gotoAndStop("game")
}
info.tween= new mx.transitions.Tween(
info, "_y",
mx.transitions.easing.None.easeOut,
100, 0, 300);
info.tween.onMotionFinished = gotoFrame
skipBtn.onRelease=gotoFrame


其中gotoFrame就是跳別的場景的函式
info是說明文字的mc,我以為把tween放在他自己身上會比較好管理。
而用onMotionFinished=gotoFrame,表示當tween完成時自動轉場景。
而skipBtn上當然也指定同樣的函式。

然後問題來了,如果我都不按skip的話,300個frame過後,他會自動執行gotoFrame函式,這是ok的。

但如果我在中途,例如畫面一出來就按下skip的話,gotoFrame會被執行沒錯,但不管場景目前在哪,300個frame過後,gotoFrame依然再被執行一次。

我本來以為tween放在info這個mc?就沒事了,因為我gotoFrame後是在另一個scene了,場景上info這個mc早就不存在了,但其實info.tween仍在作業中…真納悶…

所以最好要在gotoFrame的函式?,將info.tween徹底清掉才行。

神影無蹤-廖添丁FlashGame

這是一個以台灣民間故事-「廖添丁傳奇」為腳本的捲軸動作遊戲。
創作理念是希望在遊戲中讓玩家多認識台灣本土文化與特色
請多多給予建議及指教,謝謝。

.進入神.影.無.蹤-廖添丁 [創作心得]
**注意!!請先確定您的Flash player已更新至7.0以上。或立即安裝

更新記錄
**7/10追加-十連斬
**7/02修正-右鍵選單、瑩幕鎖定及腰巾斬問題
**7/01修正-絕招當機問題
**6/30追加-殘影設定
**6/29追加-隱藏場景

2004/6/17

書:老台灣柑仔店

老台灣柑仔店的圖像

『帶您重新走過老柑仔店、老戲院、理髮廳、照相館、百貨行、玩具店、牙科等,兒時經常光顧的商店;也讓您看看舊時代的商業招牌、阿公的寄藥包、黑膠唱片、真空管、復古零嘴、古早娃娃、鐵皮玩具...,以及那些當年愛不釋手的大同寶寶、尪仔飄。』
--摘自 老台灣柑仔店

在下不敢說對台灣文物有多大研究,但一直對老台灣事物很有興趣,這本書不旦內容豐富而且照片非常多,讓我今天在書店看到這本,馬上愛不釋手…
對懷舊文物有興趣的人可以去看看。

老台灣柑仔店

2004/6/13

以迴圈刪除不規則命名MC

之前有看到mmug討論,在開發flash game的時候,場景中經常會產生許多大大小小mc,因此最好的方式是將所有的mc都先包在一個大的mc中,例如
_root.game.hero//主角
_root.game.background//背景
_root.game.enemy1~enemyN//敵人群
當遊戲結束時只要將_root.game刪除即可。


以前我也是這樣做的,但是今天就是不小心沒把所有東西放在一起,但實在又懶得一行行去remove…更不可能重新安排所有mc…

因此突然想到一招爛招:用for in迴圈,也行滴

例如:

for (N in _root) {
if (typeof (_root[N]) == "movieclip") {
trace(N+":讓我死吧~");
}
}

這樣就可以快速找到_root下所有mc,尤其方便在不規則命名下使用^^"

同樣的方法也可以用來找mc以外的物件。像object之類的

如果說其中有少數幾個是要保留的,也可以if else加入判斷





***意外發現!!

在用這招時,發現多一個不是我產生的mc叫:__OnEnterFrameBeacon(底線兩次)

這似乎又是undocument的玩意兒,用google找只找到一篇

http://www.darronschall.com/weblog/archives/000082.cfm

via:darron schall

好像是可以在無mc的狀態下,觸發onEnterFrame事件,真有趣…有空再來看了T_T

6/11與Luar有約-參加心得

那天很高興一次見到那麼多flash同好,許多網路上的名人、常出書的作者齊聚一堂,機會十分難得。
很多平常找不到人討論的事情,在那邊可以暢所欲言,相當高興。
閒聊片刻,大家互相拿作品來觀摩,每個人專長不同,作品都非常出色
感覺到Flash的世界實在很廣,藝術也好開發也好,每個人都能找到自己的定位

感謝主辦人Kyle及Gray,以及聚會主角Luar
感謝熱心的阿修整理了當天的照片

回來的感想是:幸好有去!

2004/6/9

VIRIDIAN ROOM-逃離房間第二集



Crimson Room的續作,一樣是以逃出房間為目的,一樣具有相當之難度。
故事是緊接著第一集之後,也就是第一集隔壁的另一個房間。甚至可從門把洞窺視到第一集的場景(有趣)。
作者還列出了逃離名單,破關後可留下你的大名列上名單。

挑戰VIRIDIAN ROOM
.之前Crimson Room的連結好像被作者移掉了,不過萬能的google還是能找到其他連結的。
.room系列作者Takagism的網站

2004/6/8

有關sound loop的使用

我對聲音的部份不是很熟悉,但今天遇到一些flash裏載入mp3做 sound loop的問題,在此記錄一下心得。

今天本來想用載入mp3的方式來當背景音樂,檔案是我自己remix的一小段loop音樂,一般來講也就用
my_sound.loadSound( "loop.mp3", false);
my_sound.start(0,999)

類似這樣讓它播個999次,但我發現一個小問題,便是每次loop時,中間好像會停頓了一下下,這情況將十分不利於做成sound loop。

為何如此,原因不明,因為我對聲音沒太大研究

所以只好再用別的方法

先將原本的loop.mp3轉成wav,再以wav進flash輸出swf
再load 這個swf進來播,如此便沒有中斷的問題了
而透過flash內的壓縮,我們還是可以得到相當品質,檔案小的聲音效果

為何不直接以mp3進flash出swf?因為以mp3進去的話,所得到的swf一樣會中斷。

所以我這次的結論是,若是播一整首歌或是一段語音,不需loop播放的話,用mp3就可以了,而sound loop為了避免中斷問題,最好還是進flash處理一次。

2004/6/6

Candyman-消方塊遊戲


040606a.gif

常見的消方塊遊戲,但我不知為何特別喜歡這款。
可能是喜歡他的美術風格吧~也可能因為這是我唯一有玩上榜的webgame吧
(個人最高紀錄:2260728分,嘿嘿…)

Candyman
ProtoKid網站本身也滿有趣的

2004/6/5

使用hitTest要注意的座標問題

今天為了一個hitTest的問題搞了好久。
最近在做個flash game,將大部份的元素都包在一個mc內
例如
_root.hero
_root.enemyAll.enemy_01

以往用hero.hitTest(_root.enemyAll.enemy_01)是沒問題的,即使各自在不同的座標系統內,hitTest在處理時會將它們都轉成global座標。
但今天為了某個目的要做myMc.hitTest(point.x,point.y)時就出問題了
myMc跟point是在不同座標系統下的,我笨笨地以為他會給我自動轉換,卻忘了point只是一個座標值而已。

要解決此問題,最好先將point轉換成global的。如:localToGlobal(point);

2004/6/4

Tween/Easing Classes試用

今天用了一下新學的,有夠方便好用
Undocumented Tween/Easing Classes
用法大致如下


myTween = new mx.transitions.Tween(MovieClip, 漸變屬性, 漸變方式, 起點, 終點, 過程時間, 是否以秒計);

說明一下
MovieClip=要做漸變的mc名
漸變屬性=該mc的屬性,如_x、_y、_alpha等等,以字串方式填入,例"_x"
漸變方式=如加速度式的或是反彈式的…有很多種,後補充
起點=起點值
終點=終點值
過程時間=可以frame或秒為單位
是否以秒計=布林值,true為以秒計,false以frame計,預設值為false

關於漸變方式,要填入easing class的名稱,共分六類,四型
六類,算是六種變化方式
Strong
Back
Elastic
Regular
Bounce
None
四型,算是四種變化位置
easeIn
easeOut
easeInOut
easeNone

由於none等於沒有,所以共有16種不同組合


總結上述,寫起來會像:
myTween = new mx.transitions.Tween(
myMc, "_y",
mx.transitions.easing.Bounce.easeOut,
100, 0, .5, true);



補充
要得知漸變是否已完成,可用
barTween.onMotionFinished = function() {}

如果想讓他不斷重播,可用
barTween.onMotionFinished = function() {this.yoyo()}
yoyo(),會讓它將起終點對調,一直重播下去

另一個函式rewind()則可讓他跳回並靜止於起點

先記到這裏吧

.詳細教學、範例,請至actionscript.org
Robert Penner的示範(不過他的好像是自己寫的,種類更多)

Run 'n roll-有趣的跑步遊戲



挺有創意的

Run 'n roll

04/7/5補充
gotoAndPlay()也注意到了,對此團隊做了專訪

Tween/Easing Classes試用

注意!!本文已移至 http://masolin.blogspot.com/2004/06/tweeneasing-classes.html

今天用了一下新學的,有夠方便好用

Undocumented Tween/Easing Classes

用法大致如下

2004/6/2

又要去漢城了嗎?

今天意外得知我的作品又被SICAF(漢城動畫影展)選中。
這次是第二次參加SICAF了,去年是小icon,今年是小「劍」作,只能說自己相當幸運,且十分感激主辦單位。
參加影展有二個好處,第一是看片,第二是出國去玩。感溫啊~

SICAF
今年入圍名單
*Internet 組,Sword/Taiwan 便是在下的小劍作。

酷站-HOTEL

Hoogerbrugge新作-HOTEL
一貫作風,鬆子老爹、諷刺性的超現實創意、互動性

HOTEL
Hoogerbrugge首頁