作者aquarianboy (我是没牌的营养师!)
看板Flash
标题Re: [问题] enterFrame要如何离开?
时间Thu Apr 26 14:06:39 2007
※ 引述《jing007 (呜~合购版让我变肥肥肥猪)》之铭言:
: 做mp3的时间拉轴还在测试阶段
: 我利用enterFrame写在时间拉轴(是影片片段)上去抓mp3的时间 并且测试
: 但一开始的DT及PT值就一直跑 全是undefined(还没按play)
: 但没有办法让他不要run啊 一直读我怕迟早会当掉
: 按下play後,才开始抓DT及PT的值 我为了避免唱完後 还一直run
: 所以想给个判断式DT=PT时就离开 但一直有问题
: 唱完後还一直跑下去…也是一直出来undefined
: 我不想让他一直run的话我该如何改?谢谢~
: onClipEvent(enterFrame)
: {
: DT = _root.music_sound.duration;
: PT = _root.music_sound.position;
: trace("DT");
: trace(DT);
: trace("PT");
: trace(PT);
: if(DT == PT)
: {
: this.stop();
: }
: }
: 补充:我的作法是在时间拉轴(影片影段)上抓场景所播放音乐的时间
: 因音乐会一直跑 所以才使用enterFrame去侦测所抓到正播放的时间
: 但是enterFrame此事件是一直不断地去侦测 只要此元件存在动画中 就会一直侦测
: (以上是小正正的书这样解说的)
: 但时间拉轴又不可能不见 而且我又要靠拉轴所拉的轴心来侦测
: 侦测现在轴心位置所应播放的音乐位置 再放出音乐 (这边还没做...)
: 所以有没有方式能让enterFrame停止侦测的?谢谢~
看到您这儿用enterFrame不断的在检查音乐是否播完
会建议你使用Sound类别来做
它在播完的时候,会抛出一个事件(onSoundComplete)
以下节录F1的说明范例:
var my_sound:Sound = new Sound();
my_sound.attachSound("mySoundID");
my_sound.onSoundComplete = function() {
trace("mySoundID completed"); //在这里可以做你想做的事 :)
};
my_sound.start();
如果你担心enterFrame太占资源的话
也许可以考虑上面这个方法 :)
供你参考
--
Sound类别的使用方法,可以再翻阅F1说明
--
http://www.eddie.com.tw/blog/
http://www.eddie.com.tw/
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.133.136.105