作者jonathanmeow (喵)
看板Flash
标题Re: [问题] 请问关於enterFrame
时间Tue May 29 16:19:18 2007
※ 引述《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: 163.19.207.209