2014-07-11 2 views
0

안녕하세요, 저는 AS3을 사용하는 초보자입니다. 터치 스크린을 위해 이벤트를 터치합니다. 그래서 내가하려고하는 것은 사용자가 자신의 손가락을 드래그하고있는 라인 뒤에 선을 긋고 선을 긋고 선을 치우는 것입니다. 또한 멀티 터치를 원하기 때문에 사용자가 여러 개의 손가락을 사용할 수 있으므로 AS3에서 가능한지 확실하지 않습니다. 모두 도움을 주셔서 감사합니다! 현재이 문제를 해결하고 있습니다.AS3 : 터치 스크린으로 라인 그리기

import flash.ui.Multitouch; 
import flash.ui.MultitouchInputMode; 
import flash.events.TransformGestureEvent; 
import flash.events.MouseEvent; 

Multitouch.inputMode = MultitouchInputMode.GESTURE; 

var lineContainer:Shape = new Shape(); 

square_mc.addEventListener(TransformGestureEvent.GESTURE_PAN, onPan); 
square_mc.addEventListener(TransformGestureEvent.GESTURE_ROTATE, onRotate); 
square_mc.addEventListener(TransformGestureEvent.GESTURE_ZOOM, onZoom); 
stage.addEventListener(MouseEvent.MOUSE_DOWN, drawlines); 

square_mc.gotoAndStop(1); 

function onPan (e:TransformGestureEvent):void{ 
    square_mc.y += e.offsetY; 
    square_mc.x += e.offsetX; 
    square_mc.gotoAndStop(3); 
} 

function onRotate (e:TransformGestureEvent):void{ 
    square_mc.rotation += e.rotation; 
    square_mc.gotoAndStop(2); 
} 

function onZoom (e:TransformGestureEvent):void{ 
    square_mc.scaleX *= e.scaleX; 
    square_mc.scaleY *= e.scaleY; 
    square_mc.gotoAndStop(4); 
} 

function drawlines(e:MouseEvent):void { 
      lineContainer.graphics.clear(); 
      lineContainer.graphics.lineStyle(5, 0x0099FF); 
      lineContainer.graphics.endFill(); 
} 
+1

약간의 노력을 보여줘야합니다. 터치 이벤트 및 드로잉 API에 대한 설명서를 살펴보고 문제가 발생하면 특정 질문으로 돌아가십시오. –

+0

알았습니다. 이제 mouseDown 및 mouseUp이 터치 스크린에서 작동합니까? – Klye

+0

나는 그렇게 믿는다. 너는 갇혀서 시도해 보지 그래? –

답변

1

마우스 이벤트는 터치 스크린에서 작동합니다. 왼쪽 마우스 클릭의 예가 "탭"이됩니다. 그런 다음 코드가 잘 작동되는 추적 메시지를받을 경우 최저 그 function drawlines(e:MouseEvent):void 내부의 첫 번째 줄

trace ("I am Mouse Click.. working!!")

을 넣어.

var lineContainer:Shape = new Shape();을 가지고 있어도 나중에 해당 모양을 addChild (lineContainer);과 함께 디스플레이에 추가하지 않았더라도 코드에 아무 것도 표시되지 않습니다. Flash는 사용자가 의미하는 바를 알고 있지만 어떤 일이 일어나고 있는지 보여주기 위해 말하지 않았습니다.

마지막 조언은 LineContainer에도 컨테이너 Sprite를 만드는 것이 가장 좋습니다. Sprite에는 스테이지와 마찬가지로 Mouse 이벤트를 수신 할 수있는 기능이 있습니다. 이 스프라이트를 "캔버스"라고 말한 경우
canvas.addEventListener(MouseEvent.MOUSE_DOWN, drawlines);

+0

도움을 주셔서 감사합니다. 그러나 몇 가지 사항은 해결했지만 내 라인은 아직 그리지 않습니다. – Klye

+0

나는 며칠 동안 ** S.O **에서 벗어났다. 이제 선을 그릴 수 있습니까? 함수'drawlines'는 라인 스타일 (크기, 색상)을 설정했지만 실제로는 drawline (위치 또는 길이 설정 없음)을 그리지 않았습니다. 이 튜토리얼 : [AS3 Draw Lines] (http://www.republicofcode.com/tutorials/flash/as3drawvectors/)를 확인하십시오. 추신 : 언제 AS3 문제를 검색하고 Republic of Code가 그 결과를 보여줄 때마다 체크 아웃하십시오. 내가 초보자 였을 때 나에게 좋은 정보를 가지고 있었다. –

+0

그래, 다르게 끝내지 만 네 길은 일 했어. – Klye