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