`
junlas
  • 浏览: 61309 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

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;
    }
}
}

 

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics