close

範例:


需要圖層:1

需要元件:1-X
至少1個,最多無上限,看實際運用情形。
本例一個用了7個按鈕元件、8個影片元件
77個圖片元件(用來製作按鈕和影片元件)
2個聲音元件(用來播放音樂和音效)

需要動畫:無

需要指令:4
stop、Goto、Tell Target、Set Variable

這個範例基本上接著「轉!轉!轉!」而來的,
也是透過控制影片元件的播放來達到切換的效果,
只是為了達到讓每一個項目依次呈現,需要另外一個action,
那就是 Set Variable ,但是我們這裡並不以數字來做呈現,
而改以圖片來做呈現。

一開始先將主場景完成,然後製作下面一排要切換點擊用的影片元件,
以及上面用來顯示大圖片的影片元件,在場景裡設定名稱為 Bigs,
將下面的影片元件複製成5個,在場景裡設定它們的名稱,如:s1、s2、s3、s4、s5。

影片元件裡的影格從第一個影格至最後影格剛好是第一張圖片至最後一張圖片。
由於是影片元件,即使場景影格只有一格,放在場景裡的影片也會一直播放,
更別說我們是要透過點擊下面和左右兩邊的按鈕和圖片來改變顯示的,
所以都要在大圖和小圖影片元件的第一個影格設定 Action:stop,
這樣一開始它們就會停在地一個影格,直到我們用其他放是改變它們。

為了讓下面的圖片能夠依照往右或往左遞增或遞減改變圖片,
所以這裡我們需要用到 Tell Target,當往右或往左按一次按鈕時,
告訴影片往後播放一個影格,當然有幾個,那就得設置幾個。

往右:
On (Release)
      Begin Tell Target ("/s1")
        Go to Next Frame
      End Tell Target
End On

往左:
On (Release)
      Begin Tell Target ("/s1")
        Go to Previous Frame
      End Tell Target
End On


依此類推,可是這裡就產生一個問題,
當按下往右或往左時,所有的影片都會同時移動一個影格,
那麼要順序呈現的效果就無法呈現了,
所以我們必須再一開始就設定每一個影片的預設影格:
在場景的影格Action設定裡先設定:

Begin Tell Target ("/s1")
  Go to and Stop (1)
End Tell Target
Begin Tell Target ("/s2")
  Go to and Stop (2)
End Tell Target
Begin Tell Target ("/s3")
  Go to and Stop (3)
End Tell Target
Begin Tell Target ("/s4")
  Go to and Stop (4)
End Tell Target
Begin Tell Target ("/s5")
  Go to and Stop (5)
End Tell Target


那麼當一進入場景時,第一個影片就會顯示第一個影格,
第二個影片就會顯示第二個影格,依此類推。
然後當我們按下往右或往左按鈕時,
所有的影片就會一他現在的影格位置往前或往後一個影格。

可是到這裡又會發現一個問題,
當我們一直按往右或往左時,因為會一直往後或往前一個影格移動,
最後會變成所有的影格都變成影片裡的第一個影格或最後一個影格,
而我們要得效果是:起始 01 02 03 04 05 最後 34 35 36 37 38
之前的設定按到最後會變成 01 01 01 01 01 和 38 38 38 38 38。

所以我們需要另外一個東西來控制影格的播放。
我們需要 Set Variable ,透過設定變數和運算式來達到控制的目的,
也就是變數值多少,影片就播放第幾個影格。

使用文字工具裡的 Text Field ,在場景裡隨意位置,
因為此例一共有5個切換影片,所以就要放5個,
因為只是要作為控制用不是要真的顯示裡面的文字,
所以請在其中的屬性設定裡將:
Draw border and background,取消打勾。
(將 Text Field 的框線和底色去掉)
Disable editing,打勾。
Disable selection,打勾。
(關閉 Text field 的編輯和選取功能)
然後將其名稱分別設定 N1、N2、N3、N4、N5。

因為現在要使用設定變數的方式來指定影格播放位置,
所以原先在場景裡的影格設定就要改成:

Set Variable: "/:N1" = 1
Set Variable: "/:N2" = 2
Set Variable: "/:N3" = 3
Set Variable: "/:N4" = 4
Set Variable: "/:N5" = 5
Begin Tell Target ("/s1")
      Go to and Stop (/:N1)
End Tell Target
Begin Tell Target ("/s2")
      Go to and Stop (/:N2)
End Tell Target
Begin Tell Target ("/s3")
      Go to and Stop (/:N3)
End Tell Target
Begin Tell Target ("/s4")
      Go to and Stop (/:N4)
End Tell Target
Begin Tell Target ("/s5")
      Go to and Stop (/:N5)
End Tell Target
Stop


Set Variable: "/:N1" = 1
這行是將場景裡 N1變數裡的值設定為 1,其餘相同。

Begin Tell Target ("/s1")
      Go to and Stop (/:N1)
End Tell Target

這是告訴影片s1 播放第(變數名稱)個影格,那麼是第幾個影格,
就看N1變數裡的值是多少了,因為我們已經設定 1 ,
所以他就會播放第一個影格畫面,其餘依此類推。

由於現在影片影格的播放已經改由變數來指定,所以還需要一個東西來改變變數裡面的值,
這樣按了往右或往左時,變數才會跟著增加或減少數值,那麼影格就會因此往前或往後,
新增一個影片元件,再場景裡命名為sub,裡面只要3個影格,
因為只是最為控制支用,也不用放任何圖片,
將第一個影格設定Action為stop(理由同大圖和小圖影片元件),在第二個影格設定:
If (/:N1 >= 2)
      Set Variable: "/:N1" = /:N1-1
      Set Variable: "/:N2" = /:N2-1
      Set Variable: "/:N3" = /:N3-1
      Set Variable: "/:N4" = /:N4-1
      Set Variable: "/:N5" = /:N5-1
End If

這是用來作為條件的判斷,如果 N1變數的值小於或等於2,
那麼當我們按下往左的按鈕時,所有的變數都減1,
因此如果 N1變數已經為1時,那麼 N2-N5變數裡的值就不會再被減掉1,
即使繼續按,運算式不會再繼續執行,就不會出現上面提到的,
最後變成 01 01 01 01 01 或 38 38 38 38 38 的結果。

第三個影格則設定為:
Begin Tell Target ("/s1")
      Go to and Stop (/:N1)
End Tell Target
Begin Tell Target ("/s2")
      Go to and Stop (/:N2)
End Tell Target
Begin Tell Target ("/s3")
      Go to and Stop (/:N3)
End Tell Target
Begin Tell Target ("/s4")
      Go to and Stop (/:N4)
End Tell Target
Begin Tell Target ("/s5")
      Go to and Stop (/:N5)
End Tell Target

因為第二個影格已經改變了變數內容,所以當然影片也要改變阿,
所以就要告知所有的小圖影片元件依照相對應的變數名稱值播放影格。
由於我們第一個影格本來就設定 stop ,
當影片又跳回第一個影格要重新執行運算式時就會停止。

上面是往左的,同樣的,往右也要製作一個運算式影片元件,
設置方式同上,場景裡命名為add,只有第2個影格不同:

If (/:N5 <= 37)
      Set Variable: "/:N5" = /:N5+1
      Set Variable: "/:N4" = /:N4+1
      Set Variable: "/:N3" = /:N3+1
      Set Variable: "/:N2" = /:N2+1
      Set Variable: "/:N1" = /:N1+1
End If


再來就是修改往右和往左的 Action ,這裡是作為啟動運算式的開關,
因為我們按了一次往右,所有圖片應該由 01 02 03 04 05 變成 02 03 04 05 06,
所以設定往右或往左按鈕 action 為:

往右:
On (Release)
      Begin Tell Target ("/add")
            Go to and Play (2)
      End Tell Target
End On


往左:
On (Release)
      Begin Tell Target ("/sub")
            Go to and Play (2)
      End Tell Target
End On


這裡的邏輯就是,我們按了往右或往左按鈕後,
就會告訴 add(或 sub)影片元件從第2個影格執行,
那麼 add 第2個影格就會被執行,所以變數裡的值就會被改變,
接下來第3個影格被執行,所以有的圖片就會播放改變後的變數值相對影格,
然後就會依照我們想要的效果那樣依次顯示下一個圖片。
而當最左邊或最右邊達到極限時,運算式就不再執行,因此就不會重複出現圖片了。

最後,在於5個小圖影片上面放置5個透明按鈕設定按鈕動作為:
On (Release)
      Begin Tell Target ("/Bigs")
            Go to and Stop (/:N1)
      End Tell Target
End On

這個就很簡單,因為變數的變化前面都已經設定好了,
只要依據變數其值多少播放相對應影格即可。
最後再加個背景音樂和按鈕音效。


arrow
arrow
    全站熱搜

    ALVIN 發表在 痞客邦 留言(0) 人氣()