zms198983 发表于 2013-1-5 14:36:34

呃 竟然没有ActionScript 我来一发

这段代码的作用是将多张位图变成有点类似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 = new Sprite();//创建
                                addChild(_spriteArray);
                                _spriteArray.addChild(_array);
                                if (_i > 0) {
                                        _spriteArray.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.visible = false;
                        }
                        _spriteArray.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.visible = false;
                        }
                        _spriteArray.visible = true;
                        _playId++;
                        if (_playId >= _spriteArray.length) {
                                _playId = 0;
                        }
                }
               
                private function myGotoPlay():void {
                        for (var _i:int = 0; _i < _spriteArray.length; _i++) {
                _spriteArray.visible = false;
            }
            _spriteArray.visible = true;
            _playId++;
            if (_playId >= _spriteArray.length){
                _playId = 0;
            }
                }
               
        }

}







zms198983 发表于 2013-1-9 10:44:55

汗 没人回 自己坐沙发

淡淡滋味 发表于 2013-1-9 10:51:49

有机会试一下

zms198983 发表于 2013-1-9 10:52:36

淡淡滋味 发表于 2013-1-9 10:51 static/image/common/back.gif
有机会试一下

:90:也不知道什么用没有弄完了 我都没用过 哈哈就是当时想到了试一下

淡淡滋味 发表于 2013-1-9 10:56:00

zms198983 发表于 2013-1-9 10:52 static/image/common/back.gif
也不知道什么用没有弄完了 我都没用过 哈哈就是当时想到了试一下 ...

楼主要保持写代码的习惯啊,一放下手就生了。。

zms198983 发表于 2013-1-9 13:08:47

淡淡滋味 发表于 2013-1-9 10:56 static/image/common/back.gif
楼主要保持写代码的习惯啊,一放下手就生了。。

想不写也没办法呀 从事IT的

淡淡滋味 发表于 2013-1-10 10:35:36

zms198983 发表于 2013-1-9 13:08 static/image/common/back.gif
想不写也没办法呀 从事IT的

呵呵~~
页: [1]
查看完整版本: 呃 竟然没有ActionScript 我来一发