multi-touch in air2
-
Upload
reasonpun -
Category
Technology
-
view
759 -
download
11
description
Transcript of multi-touch in air2
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。