• 点击屏幕对显示对象进行操作:调整位置/旋转缩放模式/拖动


    1.加载资源

    2.将资源添加到显示列表并设置锚点

    ////////////////////////////////*调整位置关键代码*/

    this.stage.addEventListener(egret.TouchEvent.TOUCH_BEGIN, (e: egret.TouchEvent) => {

    显示对象.x = e.localX;
    显示对象.y = e.localY;
    }, this);

    ////////////////////////////////*旋转缩放模式关键代码*/

    private static  STEP_ROT:number=3;

    private static STEP_SCALE:number=.03

    //用于记录当前模式,模式切换通过触摸舞台触发

    private _animMode:number;

    private _scaleBase:number;

    private launchAnimations(0:void{

    this._animMode = AnimaModes.ANIM_ROT;
    this.stage.addEventListener(egret.TouchEvent.TOUCH_TAP, () => {

    this._animMode = (this._animMode + 1) % 3;
    }, this);
    this._scaleBase = 0;
    //根据当前模式调整旋转度数或缩放正弦基数形成相应动画
    this.addEventListener(egret.Event.ENTER_FRAME, (e: egret.Event) => {
    switch (this._animMode) {
    case AnimaModes.ANIM_ROT:
    this.显示对象.rotation += Main.STEP_ROT;
    break;
    case AnimaModes.AnimM_SCALE: //缩放范围0.5-1
    this.显示对象.scaleX = this._dt.scaleY = 0.5 + 0.5 * Math.abs(Math.sin(this._scaleBase += Main.STEP_SCALE));
    break;
    }
    this._txtInfo.text = "旋转角度:" + this.显示对象.rotation
    + " 缩放比例:" + this.显示对象.scaleX.toFixed(2)
    + " 点击进入" + (["缩放", "静止", "旋转"][this._animMode]) + "模式";
    return false;//startTick 中回调返回值表示执行结束是否立即重绘
    }, this);
    }

    }
    class AnimaModes {
    public static ANIM_ROT: number = 0;
    public static AnimM_SCALE: number = 1;
    }

    /////////////////////////////////*拖动关键代码*/

     private 显示对象: egret.Bitmap;

    private imgLoadHandler(e: egret.Event): void {
    this.显示对象 = new egret.Bitmap(e.currentTarget.data);
    var wHalf: number = this.显示对象.width / 2;
    var hHalf: number = this.显示对象.height / 2;
    this.显示对象t.anchorOffsetY = wHalf;
    this.显示对象.anchorOffsetY = hHalf;
    //随机初始位置
    this.显示对象.x = wHalf + (this.stage.stageWidth - wHalf * 2) * Math.random();
    this.显示对象.x = hHalf + (this.stage.stageHeight - hHalf * 2) * Math.random();
    this.addChild(this._dt);
    this.launchMove();
    }
    private launchMove(): void {
    this.stage.addEventListener(egret.TouchEvent.TOUCH_MOVE, this.touchHandler, this);
    }
    private updateDT(stageX: number, stageY: number): void {
    //显示对象同步手指位置
    this.显示对象.x = stageX;
    this.显示对象.y = stageY;
    }
    private touchHandler(e: egret.TouchEvent) {
    switch (e.type) {
    case egret.TouchEvent.TOUCH_MOVE:
    this.updateDT(e.stageX, e.stageY);
    break;
    case egret.TouchEvent.TOUCH_BEGIN:
    this.stage.addEventListener(egret.TouchEvent.TOUCH_MOVE, this.touchHandler, this);
    this.stage.once(egret.TouchEvent.TOUCH_END, this.touchHandler, this);
    this.updateDT(e.stageX, e.stageY);
    break;
    case egret.TouchEvent.TOUCH_END:
    this.stage.removeEventListener(egret.TouchEvent.TOUCH_MOVE, this.touchHandler, this);
    this.stage.addEventListener(egret.TouchEvent.TOUCH_BEGIN, this.touchHandler, this);

    break;
    }
    }

    http://developer.egret.com/cn/example/egret2d/index.html#010-disp-basic

  • 相关阅读:
    Asp.Net构架(Http请求处理流程)、(Http Handler 介绍)、(HttpModule 介绍)
    JQuery中的事件(三)
    关于asp.net mvc中的httpModules 与 httpHandler
    jQuery中的CSS(二)
    JQuery选择器(一)
    JavaScript中利用Ajax 实现客户端与服务器端通信(九)
    JavaScriptDom操作与高级应用(八)
    oracle(二)V$lock 视图中ID1 , ID2 列的含义
    关于static、内部类
    oracle(一)复习起航
  • 原文地址:https://www.cnblogs.com/Ms-Sake/p/9978904.html
Copyright © 2020-2023  润新知