Sprite 的變化

前言: 利用滑鼠游標與Sprite之間的On Mouse事件,讓Sprite由不同的Cast來扮演,也就因而設計出互動的按鈕變化。

lingo 指令 put ,set

put:語法

put 常數值/變數/運算式
說明:把put後面這些值列印到Message window。Message window為驗算Lingo語法的視窗,message window本身只負責驗算的工作,不影響Director電影的演出。

同學打開選項列的Windows →Message Window,來鍵入以下語法做驗算。如圖 1


圖 1

例如:
put 1 (鍵入put 1之後,再按"Enter"鍵,即可將值運算出來)--使用常數值的語法
put a --使用變數的語法,變數需先宣告並設定初始值,請參考以 下put into 的說明
put 1 + a --使用運算式的語法

 

 

put 常數值/變數/運算式 into變數
說明: 將put 之後的值放到into之後的變數

例如: put 3 into a --把3放到a這個變數,如果我們再put a,a的值即為3,如圖 2


圖 2

 


 

set:語法

set 變數 to(或=) 常數值/變數/運算式
說明: 將set 之後的變數設定為to之後的值

例如: set a to 5
   或
   set a = 5

a是變數,5是常數。我們將a設定為5,那麼此時 a 的值就為3。
也就是我們put a的結果,就為 5,如圖 3


圖 3

 


 

 

我們此單元要學習的是 滑鼠游標移到按鈕,按鈕也產生變化,滑鼠離開按鈕後,按鈕即恢復原來的模樣。

製作步驟如下:

請同學先在Photoshop自行設計兩種狀態的變化按鈕之Cast,或是直接下載本課程圖片範例來練習,Stage大小設480x320

1. 請將下載的圖片讀入到Cast Window

將Cast Window中的"girl"放到Channel 1,Sprite 1長度為一格Frame
並且Frame 1設go the frame之語法,如 圖4


圖4

 

2.

把Cast Window中的"e1"放到舞台適當位置,成為Sprite 2,如圖 5


圖 5

 

 

2. 請同學點選Sprite 2,產生一個新的Behavior,內容如下,如 圖 6 之內容


圖 6

 

On mouseEnter → 游標移至Sprite 2上面的事件發生時
cursor 280 → (命令)游標圖示變成"手指頭"
set the member of sprite the currentSpriteNum to member "e2"

→ (命令)設定現在這個角色由"e2"來扮演
end → 事件結束時

On mouseLeave → 游標移至Sprite 2上面,再離開的事件發生時
cursor -1 → (命令)游標圖示變成"箭頭"
set the member of sprite the currentSpriteNum to member "e1"

→ (命令)設定現在這個角色由"e1"來扮演
end → 事件結束

3. 預覽播放後,用滑鼠游標移到 Sprite 2這個按鈕,就可以看到Sprite2的變化。


語法的簡化

式的優劣,不是在於內容多寡,而是在於精簡及維護容易。寫一大堆,不代表很厲害...
如果能以更少的程式內容達到我們需求,那才是真正的程式高手!寫的少才厲害!!!

以本課程的語法內容來說,其實有點囉嗦....

set the member of sprite the currentSpriteNum to member "e2"

其這一句,看了特別討厭。而the currentSpriteNum在這個角色,指的就是 Channel 2的角色,所以我們可以將程式簡化為

set the member of sprite 2 to member "e2"

整個程式內容,我們再重寫一次,如圖 7


圖 7

 


語法的再簡化

Director的lingo語法其實是比較編向於Java的點語法的,例如"我的位置"有兩種寫法

一種是→the 位置 of 我

另一種是→我.位置

我們就可以用點的方式來取代傳統過長的寫法....

另外我們所學的set a to 3或是 set a = 3,其實可以簡寫為 a = 3

所以set the member of sprite 2 to member "e2"這一句可以再簡化為下面這一句

sprite (2).member = member "e2"

整個程式內容,我們再重寫一次,如圖 8


圖 8

 


語法的再再簡化

sprite (2).member = member "e2"以再簡化為sprite (2).member = "e2"

整個程式內容,我們再重寫一次,如圖 9


圖 9



回課程目錄