Re: [問題] 是否有判斷動畫是否播放中的語法?

看板Flash作者 (CJ Cat)時間18年前 (2007/10/08 00:34), 編輯推噓5(500)
留言5則, 5人參與, 最新討論串2/2 (看更多)
※ 引述《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)

10/08 01:07, , 1F
推override :)
10/08 01:07, 1F

10/08 02:24, , 2F
太熱血了 一個問題就做出一個類別 快拜阿 <(_ _)>
10/08 02:24, 2F

10/08 10:16, , 3F
推~~
10/08 10:16, 3F

10/08 15:05, , 4F
以後需要extend MC就從這個class繼續extend就好了呀 :)
10/08 15:05, 4F

10/08 18:26, , 5F
感謝推~
10/08 18:26, 5F
文章代碼(AID): #172GgoE6 (Flash)
文章代碼(AID): #172GgoE6 (Flash)