
위 도서가 빠르면 요번달 말에 번역서 출판이 될 것이다.
베타리더로 참여한 멤버
엄진우(jin_u), 김형인, 한상훈, 강성규(땡굴이), 공현우(공씨), 지돌스타
번역은 http://drumcap.com 의 윤도선님이다. 해외에서 활동한 실력있는 분으로 김형인의 소개로 알게되어 베타리더를 할 수 있는 기회가 생겨서 흥쾌히 참여하게 되었다. 원서를 힘들게 읽고 있었던터라 더욱더 관심을 갖을 수 밖에 없었다.
이 책은 리뷰에도 작성을 하였지만, 처음 접하는 플래셔들에게도 반드시 자기 주변에 두고 틈나는데로 읽을 가치가 있는 책이다. 나 역시 모르고 지나갔던 것들을 이 책을 통해서 많이 익힐 수 있었다.
그리고, 번역은 누가 했느냐가 중요하다. 그 사람의 능력에 따라 책의 퀄리티가 달라진다고 생각하기 때문이다. 요번에 내가 참여를 하였기 때문에 좋은 말을 쓰는것도 없진 않지만, 훌륭한 책을 번역한 윤도선님에게 다시 한번 감사를 전한다.
요번 여행지중에서 조용하고 편안한 곳에서 읽으려고 컨버팅하여 전자 사전에 담아두었다.
Learn how to use the new gesture support in Flash Player 10.1 and Adobe AIR 2.0.
Length: 23:52

간만에 놀러간 gotoandlearn에서 제스처 인터렉션에 대한 영상을 보았다.
이렇게 심플하게 효과를 낼 수 있다니 놀랍다.
난 전체적인 알고리즘을 작성해야 할 줄 알았는데 이벤트 리스너 등록만으로 쉽게 처리되는 것을 보고는… @_@
위 예제 다운로드가 안되어서 사용된 코드를 직접 이곳에 작성한다.
package
{
import flash.display.StageDisplayState;
import flash.display.StageScaleMode;
import flash.display.StageAlign;
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.events.TransformGestureEvent;
public class GestureSampleCode extends Sprite
{
private var con:Sprite;
public function GestureSampleCode()
{
stage.displayStage = StageDisplayState.FULL_SCREEN_INTERACTIVE;
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
stage.addEventListener(TransformGestureEvent.GESTURE_ZOOM, this.onZoom);
stage.addEventListener(TransformGestureEvent.GESTURE_ROTATE, this.onRotate);
this.init();
}
private function init ():void
{
this.con = new Sprite();
this.con.x = stage.stageWidth * 0.5;
this.con.y = stage.stageHeight * 0.5;
this.addChild(this.con);
for (var i:int = 0; i < 10; i++)
{
var b:Sprite = Sprite(new box());
b.x = Math.random() * stage.stageWidth - (stage.stageWidth * 0.5);
b.y = Math.random() * stage.stageHeight - (stage.stageHeight * 0.5);
b.rotation = Math.random() * 360;
b.addEventListener(MouseEvent.MOUSE_DOWN, this.onDown);
b.addEventListener(MouseEvent.MOUSE_UP, this.onUp);
b.addEventListener(TransformGestureEvent.GESTURE_ZOOM, this.onZoom);
b.addEventListener(TransformGestureEvent.GESTURE_ROTATE, this.onRotate);
this.con.addChild(b);
}
}
private function onDown(e:MouseEvent):void
{
var b:Sprite = Sprite(e.currentTarget);
this.con.addChild(b);
b.startDrag();
}
private function onUp(e:TransformGestureEvent):void
{
var b:Sprite = Sprite(e.currentTarget);
b.stopDrag();
}
private function onZoom(e:TransformGestureEvent):void
{
e.stopImmediatePropagation();
this.con.scaleX = e.scaleX;
this.con.scaleY = e.scaleY;
}
private function onRotate(e:TransformGestureEvent):void
{
e.stopImmediatePropagation();
this.con.rotatione += e.rotation;
}
}
}