Re: [問題] 請問關於enterFrame

看板Flash作者 (響徹雲霄的喇叭聲)時間18年前 (2007/05/29 19:22), 編輯推噓4(401)
留言5則, 2人參與, 最新討論串4/5 (看更多)
感謝兩位大大的回答~~太感動了 小弟努力了一個下午 先試了jona大的方法 大概跑一下round 可是一直失敗 下班要翻書查round的用法 結果書忘在公司帶錯本回來了Orz... 然後是ice大的方法 因為小弟總共有11個按鈕在控制mc_gin這個影片的旋轉角度 所以必須分開寫在每個按鍵的on(Press)裡 這樣才能指定按下每個按鍵後的旋轉角度 後來回家的時候想到別的方法做做看 剛剛做成功了 不過我一定會再練習看看setInterval的用法 感謝感謝 最後報告一下 是用tween去寫的 大致是這樣子 var myTween:Tween = new Tween(mc_gin, "_rotation", mx.transitions.easing.Regular.easeInOut, mc_gin._rotation, 30, 2, true); 30是想要的角度 這樣沒有用到onEnterFrame 電腦也開心多了 謝謝謝謝~~ ※ 引述《jonathanmeow (喵)》之銘言: : ※ 引述《zswolf (響徹雲霄的喇叭聲)》之銘言: : : 試了兩天還是失敗了Qrz... : : 我在舞台上有個實體名稱為mc_gin的影片片段以及btn_1的按鈕 : : 然後我在btn_1上寫下 : : on (press) { : : var speed:Number = 10; : : mc_gin.onEnterFrame = function() { : : this._rotation -= -(30-this._rotation)/speed; : : _root.mc_clock.mc_back._rotation -= : : -(30-180-mc_clock.mc_back._rotation)/speed; : : trace(this._rotation ); : : if (this._rotation ==30) { : : delete mc_gin.onEnterFrame; : : } : : }; : : } : : 但是trace出來EnterFrame並沒有刪除掉 : : 可是我如果藍色的部份寫(this._rotation >29.99) : : 那只要大於29.99後onEnterFrame就會被delete掉了 : : 如果沒有delete掉一直算會變的很吃力..... : : 請問有沒有高手可以替小弟解惑一下~~~感謝!! : 我記得之前我也問過相同狀況的問題 : 有網友提到加上除法變成小數之後 : 可能會因為某些二進位的因素 : 讓它無法確實等於30 : 縱使你讓他trace出來是30 : 但他實際上還是不是30(這是繞口令嗎?!) : 當時我的解決方式之其一 : 就是讓他四捨五入後再判斷是否等於30 : 我記得四捨五入是round() : 所以你在if判斷式中 : 改成這樣 : if (round(this._rotation) ==30) { : this._rotation=30; : delete mc_gin.onEnterFrame; : } : 試試看可行否吧 :) -- 挖~~店員辭職啦~~~~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.133.21.39

05/29 22:07, , 1F
哇...居然不是這個問題 還要再磨練磨練....
05/29 22:07, 1F

05/29 22:12, , 2F
不過剛查了一下 是Math.round()啦 記成別的了....
05/29 22:12, 2F

05/30 00:51, , 3F
感謝!!確定沒問題!!筆記筆記~~很實用!!
05/30 00:51, 3F

05/30 07:01, , 4F
這樣就可以了喔? 唔..不過你的tween我沒用過
05/30 07:01, 4F

05/30 07:01, , 5F
是flash8才有的嗎? 最近才灌它 改天也來學學看
05/30 07:01, 5F
文章代碼(AID): #16N0plIA (Flash)
文章代碼(AID): #16N0plIA (Flash)