multi-touch in air2

Preview:

DESCRIPTION

 

Citation preview

Flex学习小结之 air multi touch

Copyright by reasonpun

2010-11-30

Muti-touch Demo in Adobe Air 2

• 准备环境: flash builder 4 & air 2+• Air2 :

http://blogs.adobe.com/air/2010/06/adobe_air_2_sdk_now_available.html 需要下载他的 sdk2.0以上版本,貌似只有 2.0以上版本支持!

(另外,文档提示支持基于 Flash player10+ ,Flash lite4,不过我没实验出来,再议)

开始multi-touch 吧

• 首先我们需要创建 Air工程

• 剩余的就是下一步,然后点击完成就可以了。

开始编码 • 载入容器

• 我们这里使用的 Sprite• 调用的方法:

import mx.core.UIComponent;

var mysprite:Sprite = new Sprite();

mysprite.graphics.beginFill(0x336699);

mysprite.graphics.drawRect(0, 0, 1000, 800);

var uc:UIComponent = new UIComponent();

uc.width=600;

uc.height=500;

uc.addChild(mysprite);this.addElement(uc);

开始编码

调用多点触摸代码Multitouch.inputMode = MultitouchInputMode.GESTURE;

// 多点移动mysprite.addEventListener(TransformGestureEvent.GESTURE_PAN , onPan);

// 旋转mysprite.addEventListener(TransformGestureEvent.GESTURE_ROTATE , onRotate );

// 缩放mysprite.addEventListener(TransformGestureEvent.GESTURE_ZOOM , onZoom);

开始编码

具体代码:public function onPan(evt:TransformGestureEvent):void {} 方法,其中定义了一个全局的变量public var myTextField:TextField = new TextField();

通过判断 offsetX的值的正负修改该控件 x坐标

开始编码

if(evt.offsetX < 0){

myTextField.x-=10;

}

else if(evt.offsetX == 0){ }

Else{

myTextField.x+=10;

}

开始编码

具体代码:public function onZoom(evt:TransformGestureEvent):void {} 方法,其中定义了一个全局的变量public var myTextField:TextField = new TextField();

通过判断 scaleX的值是否大于 1修改该控件的长,宽

开始编码

if(evt.scaleX > 1 && evt.scaleY > 1){myTextArea.height++;

myTextArea.width++;

}Else{

myTextArea.height--;myTextArea.width--;

}

开始编码

具体代码:public function onRotate(evt:TransformGestureEvent):void {}方法,其中定义了一个全局的变量public var myTextField:TextField = new TextField();

通过判断 rotation的值是否大于 0修改该控件的 rotationZ值。

开始编码

if(evt.rotation > 0){

myTextField.rotationZ +=10;

}Else{

myTextField.rotationZ -=10;

}

完活

• 此时运行就可以看到效果了,记得要在 sprite区域中进行操作,因为事件是定义在这个区域里的。

• 其他没什么了,接下来研究怎么通过 flex应用实现multi touch。

Recommended