看板 Flash 關於我們 聯絡資訊
※ 引述《allpassXD ()》之銘言: : flash中是否有語法能判斷動畫是否正被播放中 : 我想寫在if的判斷式裡面 可以自己從MovieClip這個class來extend一個自訂class 我取的名稱是MonitoredMovieClip 然後直接override掉原本的play()和stop() 以後只要呼叫isPlaying就可以知道這個MC到底有沒有在播放 (記得要在symbol linkage那邊的class欄位打上MonitoredMovieClip) 只是如果是在該MC內部執行play()和stop() 記得使用this.play()和this.stop() (我個人習慣是不管哪個MC裡面都打this) ※後半段還有override其他method 諸如gotoAndStop(), gotoAndPlay(), nextFrame(), prevFrame() 都很類似play()和stop()的override方式,就請自行看囉 -------------------<以下為MonitoredMovieClip.as的內容>-------------------- class MonitoredMovieClip extends MovieClip{ //紀錄播放狀態,預設為"PLAYING" private var _playbackStatus:String = "PLAYING"; //P.S.我習慣private property用底線開頭取名字 //取得播放狀態用的getter public function get isPlaying():Boolean { if (_playbackStatus == "PLAYING") { return true; } else if (_playbackStatus == "STOPPED") { return false; } } //override原本的play() public function play():Void { //呼叫原本的play() super.play(); _playbackStatus = "PLAYING"; } //override原本的stop() public function stop():Void { //呼叫原本的stop() super.stop(); _playbackStatus = "STOPPED"; } //以下的code就大同小異 public function nextFrame():Void { super.nextFrame(); _playbackStatus = "STOPPED"; } public function prevFrame():Void { super.prevFrame(); _playbackStatus = "STOPPED"; } public function gotoAndStop():Void { super.gotoAndStop(); _playbackStatus = "STOPPED"; } public function gotoAndPlay():Void { super.gotoAndPlay(); _playbackStatus = "PLAYING"; } } -- CJ Cat = Croa'J Cat = Cockroach Cat = 西街凱特 = 蜚蠊貓 = 蟑螂貓 Gallery http://cjcat2266.deviantart.com ptt2 Board CJWorkshop - 阿多比閃光(Adobe Flash)研討區 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.228.81.93 ※ 編輯: cjcat2266 來自: 61.228.81.93 (10/08 00:40)
aquarianboy:推override :) 10/08 01:07
etrexetrex:太熱血了 一個問題就做出一個類別 快拜阿 <(_ _)> 10/08 02:24
mooder:推~~ 10/08 10:16
cjcat2266:以後需要extend MC就從這個class繼續extend就好了呀 :) 10/08 15:05
allpassXD:感謝推~ 10/08 18:26