作者jonathanmeow (喵)
看板Flash
标题Re: [问题] 随机拨放Movie上的影格
时间Mon Feb 4 23:05:45 2008
※ 引述《oj113068 (橘子汁)》之铭言:
: : onEnterFrame = function () {
: : _root._a.gotoAndStop(Math.floor(Math.random()*5)+1);
: : }
: 不好意思,遇到一个大问题 囧
: 就是和2667一样
: 跳动的太快眼花撩乱了Orz
: 虽然看了2667的讨论,但是我却吸收不了他的内容Orz
: 因为他每格都在判断变数,所以即使我改成gotoAndPlay再延长影格也没用~> <"
: 推 Jerrynet:如果不用Timer,2671篇是蛮好的解决方法 02/03 22:30
: → oj113068:所以我是直接加上三行var做调整就可以了吗? 02/04 11:50
: 推 Jerrynet:不只啊,他不是还有写判断式~ 02/04 12:49
: → oj113068:唔,现在遇到的另外一个问题是,2671篇是决定xy轴 02/04 16:07
: → oj113068:的范围,我要怎麽改成决定时间的长短? 02/04 16:08
: → oj113068:简单的说就是,我有点不知道要怎麽修改2671...(尝试中Orz 02/04 16:09
本来想说这讨论串有参考价值(我想到的是掷骰子的运用)
所以回去2671爬文
结果发现 2671篇作者是我耶
应该洒花吗? XD
原本写的东西有包含引用的内容
所以实际应该是下面写的这样
var fps:Number=12;//这个数字自己调整成该档案的画面更新速率
var stop_sec:Number=3;//看你自己要几秒
var i:Number=0;//用来累计的
onClipEvent (enterFrame) {
i++;
if(i>=fps*stop_sec){
this._x = math.random()*800;
this._y = math.random()*600;
i=0;
}
}
先看黄色的部分
这里的if就是判断经过的时间有没有到达我们设定的时间
而这个我们设定的时间就是绿色的部分可以做设定(改那个3就好了)
而因为你想要在到达设定的时间执行「取变数以及gotoAndStop」这个东西
因此只要将内部的this._x和this._y改成你要执行的事情就好了
i=0;还是要留下喔 因为他是做累计的 如果不归零
就没办法一直重复这件事情了
另外该篇文章原本的写法是将onEnterFrame这东西写在物件里面
你的写法是写在影格上 所以onClipEvent (enterFrame) {这行也要改
改完结果应该如下
var fps:Number=12;//这个数字自己调整成该档案的画面更新速率
var stop_sec:Number=3;//看你自己要几秒
var i:Number=0;//用来累计的
onEnterFrame = function () {
i++;
if(i>=fps*stop_sec){
_root._a.gotoAndStop(Math.floor(Math.random()*5)+1);
i=0;
}
}
绿色可以调整时间 黄色是时间到了你所要做的事情
紫色是改成将程式码写在影格上的写法
以上
我个人觉得2672的方法 运用内建时间函数来做 也是很好的方式
只是 在效能上不晓得有没有什麽差异?
因为getTimer()所取得的值应该会持续变大
此时做减法 会不会影响到效能呢?
再提个问题
上面这样的作法可以让影格在固定一段时间跳到随机影格去
我联想到的是掷骰子的应用
可是这样子固定时间好像不够动感 感觉就只是突然停下来
可不可以设计成先很快的跳动 然後慢慢的变慢下来 最後停在掷出来的点数呢?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.231.150.238