可以控制多层嵌套的movieClip播放和暂停
2010-10-26 19:31
295 查看
package com.sina.utils
{
import flash.display.MovieClip;
/**
* .主要是解决一个单帧影片剪辑无法暂停和重播的问题
* @author ant-zhangpeng@staff.sina.com.cn
*/
public class MovieClipManage
{
private var _target:MovieClip;
private var _type:String;
/**
* 构造函数
* @param mc 目标影片剪辑
*/
public function MovieClipManage(mc:MovieClip = null)
{
_target = mc;
}
private function goto(mc:MovieClip, frame:int = 0):void
{
if(!(mc is MovieClip))
{
throw new Error("MovieClipManage::: 目标不是movieClip");
return;
}
frame > 0 ? mc[_type](frame) : mc[_type]();
if (mc.numChildren > 0)
{
for (var i:int = 0; i < mc.numChildren; i++ )
{
if (mc.getChildAt(i) as MovieClip)
{
goto(mc.getChildAt(i) as MovieClip, frame);
}
}
}
}
//--------------------API---------------------------------
/**
* 暂停影片剪辑
*/
public function pause(target:MovieClip = null):void
{
_type = "stop";
target = target || _target;
goto(target);
}
/**
* 恢复暂停影片剪辑
*/
public function play(target:MovieClip = null):void
{
_type = "play";
target = target || _target;
goto(target);
}
/**
* 停止影片剪辑到第一帧
*/
public function stop(target:MovieClip = null):void
{
_type = "gotoAndStop";
target = target || _target;
goto(target, 1);
}
/**
* 重播影片剪辑
*/
public function replay(target:MovieClip = null):void
{
_type = "gotoAndPlay";
target = target || _target;
goto(target, 1);
}
}
}
{
import flash.display.MovieClip;
/**
* .主要是解决一个单帧影片剪辑无法暂停和重播的问题
* @author ant-zhangpeng@staff.sina.com.cn
*/
public class MovieClipManage
{
private var _target:MovieClip;
private var _type:String;
/**
* 构造函数
* @param mc 目标影片剪辑
*/
public function MovieClipManage(mc:MovieClip = null)
{
_target = mc;
}
private function goto(mc:MovieClip, frame:int = 0):void
{
if(!(mc is MovieClip))
{
throw new Error("MovieClipManage::: 目标不是movieClip");
return;
}
frame > 0 ? mc[_type](frame) : mc[_type]();
if (mc.numChildren > 0)
{
for (var i:int = 0; i < mc.numChildren; i++ )
{
if (mc.getChildAt(i) as MovieClip)
{
goto(mc.getChildAt(i) as MovieClip, frame);
}
}
}
}
//--------------------API---------------------------------
/**
* 暂停影片剪辑
*/
public function pause(target:MovieClip = null):void
{
_type = "stop";
target = target || _target;
goto(target);
}
/**
* 恢复暂停影片剪辑
*/
public function play(target:MovieClip = null):void
{
_type = "play";
target = target || _target;
goto(target);
}
/**
* 停止影片剪辑到第一帧
*/
public function stop(target:MovieClip = null):void
{
_type = "gotoAndStop";
target = target || _target;
goto(target, 1);
}
/**
* 重播影片剪辑
*/
public function replay(target:MovieClip = null):void
{
_type = "gotoAndPlay";
target = target || _target;
goto(target, 1);
}
}
}
相关文章推荐
- 一个工具类(可以控制多层嵌套的movieClip)
- 用checkbox控制音乐的暂停与播放,同时音乐要循环播放(可以利用它当个报警提醒喔)
- [ActionScript 3.0] 如何控制加载swf动画的播放与暂停
- html5 背景音乐 js控制播放 暂停
- HTML5 Audio中控制音乐暂停、播放的js
- Android实战 - 音心播放器 (通知实现音乐的播放/暂停/下一曲控制)
- JW Player 空格控制播放暂停
- 使用VideoView播放视频,锁屏暂停播放之后,过一会自动播放,而且可以通过滑动屏幕调节音量。。。
- MediaElement视频控制:播放、暂停、停止、后退、快进、跳转、音量
- ckplayer播放器控制播放/暂停
- Swift实战-豆瓣电台(九)简单手势控制暂停播放(全文完)
- HTML5开发,audio 控制,当单个音频播放的时候,其它音频保持暂停状态,避免重音
- JS 控制 audio 标签 播放/暂停 音乐
- iOS m3u8本地缓存播放(控制下载并发、暂停恢复)
- Ijkplayer播放视频的简单使用,可以暂停继续(二)
- 用as控制音效的播放、暂停、停止及时间显示
- 动画播放器的控制动画和音频的播放和暂停
- 控制 MediaElement(播放、暂停、停止、音量和速度)
- 母版页可以多层嵌套使用
- MediaPlayer类可用于控制音频/视频文件或流的播放。关于如何使用这个类的方法还可以阅读VideoView类的文档。