影片片段 MovieClipSprite

MovieClip 物件具有時間軸 (一個以上的影格) ,主要可製作補間動畫;而 Sprite 物件不具時間軸,通常用來作為其它物件容器 (包含其它物件) 的基底類別 (base class) 。

Sprite 類別與物件 - flash.display 套件

建構 Sprite 物件

  1. var con:Sprite=new Sprite();

Sprite 的屬性與方法

Sprite 繼承 DisplayObjectContainer
[屬性]
buttonMode
  • 指出定物件為按鈕模式。
  • buttonMode:Boolean [讀寫] ,預設值為 false
  • con.buttonMode=true //指定 con 物件具有按鈕模式。
dropTarget
  • 取得本身被拖移到,或放到的其他物件。被放到的目標物件會參照到最內層實際接觸到的物件,所以也會參考實際發生事件對應的位置,例如滑鼠按下的點。
  • dropTarget:DisplayObject [唯讀]
  • dt=con.dropTarget //將 con 物件被拖移放到的物件指定給 dt 物件。
hitArea
  • 指出能夠觸發互動事件的區域,可稱為「感應區」或「作用區」。如果沒有指定,感應區預設就是本身區域。被指定為感應區的物件,必須指定 mouseEnabled=false ,停止本身原有的互動事件。
  • hitArea:Sprite [讀寫]
  • con.hitArea=sensor; sensor.mouseEnabled=false; //指定 con 物件以 sensor 物件範圍作為感應區。
[方法]
startDrag()
  • 提供使用者拖移物件,一次只能一件。
  • public function startDrag(lockCenter:Boolean=false,bounds:Rectangle=null):void
  • con.startDrag() // con 物件讓使用者拖移。
stopDrag()
  • 停止 startDrag() 拖移的物件。
  • public function stopDrag():void
  • con.stopDrag() //停止 con 物件被拖移。

MovieClip 類別與物件 - flash.display 套件

MovieClip 的屬性與方法

MovieClip 繼承 Sprite
[屬性]
currentFrame
  • 取得影片片段實體目前播放的影格編號。
  • currentFrame:int [唯讀]
  • var fm:int=mc.currentFrame // mc 物件目前影格號指定給 fm 物件。
totalFrames
  • 取得影片片段實體的影格總數。
  • totalFrames:int [唯讀]
  • var fm:int=mc.totalFrames // mc 物件的總影格數指定給 fm 物件。
[方法]
stop()
  • 停止影片片段實體播放,並停留在目前影格。
  • public function stop():void
  • mc.stop() // mc 物件停止播放。
play()
  • 影片片段實體由目前影格開始播放。
  • public function play():void
  • mc.play() // mc 物件繼續播放。
gotoAndStop()
  • 影片片段實體跳至指定影格並停止播放,參數 frame 可為影格標籤字串,可加上參數 scence 指定場景名稱。
  • public function gotoAndStop(frame:Object, scene:String = null):void
  • mc.gotoAndStop("end") // mc 物件停止在標籤為 end 的影格。
gotoAndPlay()
  • 影片片段實體跳至指定影格繼續播放,參數 frame 可為影格標籤字串,可加上參數 scence 指定場景名稱。
  • public function gotoAndPlay(frame:Object, scene:String = null):void
  • mc.gotoAndPlay("start")// mc 物件跳至標籤為 start 的影格繼續播放。
nextFrame()
  • 影片片段實體移至下一影格並停止播放。
  • public function nextFrame():void
  • mc.nextFrame() // mc 物件移至下一影格。
prevFrame()
  • 影片片段實體移至上一影格並停止播放。
  • public function prevFrame():void
  • mc.prevFrame() // mc 物件移至上一影格。

由 MovieClip 元件 (元件庫內嵌資源) 建構 MovieClip 物件

  1. 製作新 MovieClip 元件,名稱為 SampleClip 。
  2. 在元件庫更改該元件屬性: [連結] 區,勾選 [匯出給 ActionScript 使用],預設同時會勾選 [匯出在第一個影格]。
  3. [基底類別] 輸入項, 會自動出現預設的 flash.display.MovieClip ; [類別] 輸入項可自行定義名稱 (假設是 SampleClip) 。如果不需要擴充類別,按確定就行了;會出現警告「類別路徑中找不到這個類別的定義,將在匯出時自動產生至 SWF 檔」,忽略就可以了,接著 flash 會自動產生 [基底類別] 的擴充空類別。 [類別] 輸入項也可以指定自行擴充的類別名稱,但是元件庫內不允許不同元件指定相同類別名稱,也就是說類別名稱在元件庫內都是唯一的。
在第一個影格加入 ActionScript
  1. var mcA:SampleClip=new SampleClip(); //產生 SampleClip 的 instance
  2. addChild(mcA); //將 instance 加入指定的 DisplayObjectContainer

舞台上就會出現 SampleClip 的 instance ,而且預設位置會是註冊點對齊父容器物件 (DisplayObjectContainer) 的 (0,0) 。

移動補間

對正在進行移動補間動畫的 MovieClip 物件,動態變更下列任一屬性, Flash Player 會強制停止該補間動畫的播放磁頭,但不會停止該 MovieClip 物件的子 MovieClip 物件:

alpha, height, width, x, y, scaleX, scaleY, rotation, blendMode, filters, opaqueBackground, scale9Grid, scrollRect, transform, visible