multi-touch in air2

12
Flex 学学学学学 air multi touch Copyright by reasonpun 2010-11-30

Upload: reasonpun

Post on 13-Dec-2014

759 views

Category:

Technology


11 download

DESCRIPTION

 

TRANSCRIPT

Page 1: multi-touch in air2

Flex学习小结之 air multi touch

Copyright by reasonpun

2010-11-30

Page 2: multi-touch in air2

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,不过我没实验出来,再议)

Page 3: multi-touch in air2

开始multi-touch 吧

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

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

Page 4: multi-touch in air2

开始编码 • 载入容器

• 我们这里使用的 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);

Page 5: multi-touch in air2

开始编码

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

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

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

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

Page 6: multi-touch in air2

开始编码

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

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

Page 7: multi-touch in air2

开始编码

if(evt.offsetX < 0){

myTextField.x-=10;

}

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

Else{

myTextField.x+=10;

}

Page 8: multi-touch in air2

开始编码

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

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

Page 9: multi-touch in air2

开始编码

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

myTextArea.width++;

}Else{

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

}

Page 10: multi-touch in air2

开始编码

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

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

Page 11: multi-touch in air2

开始编码

if(evt.rotation > 0){

myTextField.rotationZ +=10;

}Else{

myTextField.rotationZ -=10;

}

Page 12: multi-touch in air2

完活

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

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