2014-01-12 2 views
0

현재 AS3에 문제가 있습니다.AS3 - 도면이 스테이지 범위를 초과합니다.

크기가 무대 범위를 초과하는 매우 긴 이미지를 그렸습니다. 문제는 무대 범위를 초과하는 부분이 여전히 그려 지므로 플래시를 사용하여 프로그램을 테스트하거나 웹 페이지에서 결과가 좋지 않게 보일 때입니다.

스테이지 크기를 640x660으로 설정했지만 960x640 (또는 심지어 x< 0y < 0) 이상의 부분은 여전히 ​​그려져 있습니다.

범위를 벗어난 부분을 숨기고 사전 정의 된 단계의 범위 내에서만 사물을 그릴 수있는 방법이 있습니까?

스테이지 폭과 높이 만 볼 수있는 범위 여야합니다. 그러나 왜이 범위 밖의 것들이 여전히 보일지는 알 수 없습니다.

Btw FlashDevelop을 사용하고 있습니다.

대단히 감사합니다.

+0

흠. Actionscript 시대로 되돌아갔습니다. 1 명의 사람들이 무대의 보이는 부분 바깥으로 물체를 그었고 브라우저 플래시 창은 웹 페이지를 엉망으로 만들지 않았습니다. 걱정하지 마세요. 게시를 위해 웹 페이지의 스테이지 크기를 올바르게 지정하십시오. – Vesper

+0

이것을 html 파일에 포함하고 있습니까? 이 경우 문제가되지 않습니다. – bandaro

답변

1

코드 만 사용하거나 IDE를 사용하는지 여부에 따라 크게 다릅니다.

IDE 접근 방식 : Flash Professional에서 스테이지의 타임 라인에 새 레이어를 만듭니다. 해당 레이어의 무대와 동일한 크기의 사각형을 넣으십시오. 이제, 레이어를 오른쪽 클릭하고 "마스크"를 선택하십시오. 레이어를 잠급니다.

이제 스테이지 타임 라인의 다른 모든 레이어가 해당 마스크 아래에 배치되어 있는지 확인하십시오. 마스크 바로 아래로 레이어를 드래그하여 마스크 아래 목록에서 약간 들여 쓰기되도록하십시오.

코드 접근 : (코드 How to create masks in AS3?의 코드에 대한 감성과 Nebu에 건배..)

var maskShape:Shape = new Shape(); 
maskShape.graphics.beginFill(0x0); 
maskShape.graphics.drawRect(0, 0, 960, 640); 
maskShape.graphics.endFill(); 
addChild(maskShape); 
maskShape.x = 0; 
maskShape.y = 0; 

thingToMask.mask = maskShape; 
maskShape.visible = false; 
+0

정말 고마워 !! 그 해결책 (코드 접근법)은 내 문제를 방금 해결했습니다. – Melwell

관련 문제