读书人

Matrix 演练Demo

发布时间: 2012-12-20 09:53:21 作者: rapoo

Matrix 演示Demo

运行效果:

?

下面是代码:

?

?

package branch.matrixtest {import flash.display.Sprite;import flash.geom.Matrix;import junlas.toolutil.Attach;/** * @author   */public class ApplyMatrixUI {    private var _pmc : Sprite;    private var _ui : Sprite;    private var _originalW : Number=0;    private var _originalH : Number = 0;    //    private var _isCounterClock : Boolean = true;    private var _isLable1 : Boolean = false;    private var _isLable2 : Boolean = false;    private var _numA:Number=200;    private var _numB : Number = -20;    public function ApplyMatrixUI(pmc : Sprite) {            _pmc = pmc;                initDisplay();        initMultiMovie();    }    private function initDisplay() : void {        _ui = Attach.getSprite("UIShowResult");        _pmc.addChild(_ui);        _ui.visible = false;                _ui.x= Root.STAGE_WIGHT/2;                _ui.y = Root.STAGE_HEIGHT/2;    }        private function initMultiMovie() : void {                _originalW = _ui.width;                _originalH = _ui.height;    }        /**     * Enter_Frame事件的run方法     */    public function runMatrix() : void {            if(_isCounterClock) {            if(_numA == 0 && _numB == -320){//中间判断                    _isLable1 = true;            }            _numA -= 10;            if(_isLable1){                _numB += 15;            }else{                    _numB -= 15;            }            if(_numA == -200 && _numB == -20){//逆时针的终点位置                    _isCounterClock = false;                    _isLable1 = false;            }        }else{                if(_numA == 0 && _numB == -320){//中间判断                _isLable2 = true;            }                    _numA += 10;            if(_isLable2){                    _numB += 15;            }else{                    _numB -= 15;            }            if(_numA == 200 && _numB == -20){//顺时针的终点位置                _isCounterClock = true;                _isLable2 = false;            }            }        applyMatrix(_numA,_numB,-150,200);    }        private function applyMatrix(a : Number,b : Number,c : Number,d : Number):void{            _ui.visible = true;            var mat : Matrix = new Matrix();                mat.translate(_ui.x,_ui.y);            mat.a = a / _originalW;        mat.d = d / _originalH;        mat.b = b / _originalW;        mat.c = c / _originalH;                    _ui.transform.matrix = mat;    }}}

?

?

?

?

?

读书人网 >编程

热点推荐