2016-11-02 2 views
2

대표자가 고객을 위해 최고의 제품을 선택할 수있는 도구를 만들고 있습니다. 모바일 장치에서이 도구를 사용하라는 요구가있었습니다. 작은 장치에서 더 적절하게 장치를 사용하기 위해 사용자에게 핀치 - 투 - 줌 옵션을 제공하고 싶습니다.AS3 - 제스처를위한 손가락 집게 확대

도구의 특성상 도구의 내용을 무비 클립에 넣고 해당 무비 클립을 집어 넣을 수 없습니다. 스테이지 (그리고 스테이지의 내용물)를 집어 넣고 확대/축소 할 수있는 작동하는 AS3 코드에 대한 필자의 검색이 비어 있습니다.

Multitouch.inputMode = MultitouchInputMode.GESTURE; 

stage.addEventListener(TransformGestureEvent.GESTURE_ZOOM , onZoom); 
function onZoom (e:TransformGestureEvent):void{ 
    stage.scaleX *= e.scaleX; 
    stage.scaleY *= e.scaleY; 
} 

어도비 애니메이션을 통해 그것을 테스트 할 때 다음과 같은 오류를 반환 :

나는 스택 오버플로이 코드를 발견했다

Error: Error #2071: The Stage class does not implement this property or method. 
    at Error$/throwError() 
    at flash.display::Stage/set scaleX() 
    at Beta04_fla::MainTimeline/onZoom()[Beta04_fla.MainTimeline::frame501:5] 
    at runtime::ContentPlayer/simulationSendGestureEvent() 
    at runtime::SimulatedContentPlayer/clientSocketDataHandler() 

사람이 해결하는 방법에 작업 코드 또는 조언을 제공 할 수 이 문제? 미리 감사드립니다.

+1

스테이지 크기를 조정하는 대신 문서 클래스 (기본 타임 라인)의 크기를 조정하십시오. 그래서 :'this.scaleX * = e.scaleX; ' – BadFeelingAboutThis

+0

이것이 성공했습니다! 나는 확실히 코딩에 아마추어이지만, 그렇다고하더라도, 나는 이것을 놓친 것이 어리 석다. 당신의 도움을 주셔서 감사합니다. – Dustin

답변

1

정지 스케일링 단계, 오히려 무대보다, 다음 확장 무비 클립 아이에 내용을 이동하거나 비트 맵 사용

이 아니 올바른 방법

:

대신 배율을해야합니다. 처음에는 스테이지의 스냅 샷을 만들어야합니다. 무대 전체를 그리거나 스테이지의 영역을 원하는대로 변환 매트릭스 (matrix.scale (2,2))가있는 비트 맵 객체에 놓은 다음 잘라냅니다. 좋아하는 크기로 변경하고 고객에게 새로운 임시 동영상 클립으로 사용하는 것이 좋습니다. 부드러운 애니메이션 줌을 원하는 경우

var bitmapData:BitmapData = new BitmapData(stage.stageWidth, stage.stageHeight); 
var matrix:Matrix = new Matrix(); 
matrix.translate(-50,-50); // moves your stage under magnifier 
matrix.scale(3,3); // magnification 
bitmapData.draw(stage, matrix); 

// And to actually see it 
var bitmap:Bitmap = new Bitmap(bitmapData); 
this.addChild(bitmap); 

enter image description here

또한, 당신은 내 코드 대신 정적 줌의 손가락 사이의 거리에 따라 매트릭스의 변화에 ​​영향을 미치는 이벤트 리스너의 한 단계 변수를 사용하여 비트 맵을 업데이트 할 수 있습니다

+0

답변을 주셔서 감사 드리며 말씀 드렸듯이 도구를 동영상 클립에 넣는 것은 문제가있었습니다. @BadFeelingAbout이 질문에 대한 답변이 제공되었지만 답변도 효과가있을 수 있습니다. 답변 해 주셔서 다시 한 번 감사드립니다. – Dustin

관련 문제