这段代码的作用是将多张位图变成有点类似Flash中的影片剪辑。
package util
{
import flash.display.Sprite;
import flash.utils.setInterval;
import flash.utils.clearInterval;
/**
* 创建影片剪辑
* @author zms
*/
public class MC extends Sprite
{
private var _playId:int;
private var _playNum:Number;
private var _array:Array = new Array();
private var _spriteArray:Array = new Array();
public function MC(_arr:Array) //数组的length就是影片的帧数
{
//实例化
_array = new Array();
_spriteArray = new Array();
_playId = 0;
this._array = _arr;
for (var _i:uint = 0; _i < this._array.length; _i++) {
_spriteArray[_i] = new Sprite();//创建
addChild(_spriteArray[_i]);
_spriteArray[_i].addChild(_array[_i]);
if (_i > 0) {
_spriteArray[_i].visible = false;
}
}
}
public function play(_t:uint = 550):void {
_playNum = setInterval(myPlay, _t);
}
public function stop() {
clearInterval(_playNum);
}
public function gotoAndStop(_n:uint) :void{
clearInterval(_playNum);
for (var _i:int = 0; _i < _spriteArray.length ; _i++) {
_spriteArray[_i].visible = false;
}
_spriteArray[_n - 1].visible = true;
}
public function gotoAndPlay(_n:uint,_t:uint = 550) :void{
clearInterval(_playNum);
_playId = _n - 1;
myGotoPlay();
_playNum = setInterval(myGotoPlay, _t);
}
private function myPlay():void {
for (var _i:uint = 0; _i < _spriteArray.length ; _i++) {
_spriteArray[_i].visible = false;
}
_spriteArray[_playId].visible = true;
_playId++;
if (_playId >= _spriteArray.length) {
_playId = 0;
}
}
private function myGotoPlay():void {
for (var _i:int = 0; _i < _spriteArray.length; _i++) {
_spriteArray[_i].visible = false;
}
_spriteArray[_playId].visible = true;
_playId++;
if (_playId >= _spriteArray.length){
_playId = 0;
}
}
}
}
