2011-04-05 2 views
0

내 기본적인 요구 사항은 내가 BorderContainer 객체의 CREATION_COMPLETE 경우에이 방법을 실행 BasicLayout그래픽 객체를 사용하여 테두리 컨테이너 안에 원을 그리는 방법은 무엇입니까?

로 설정 레이아웃과 BorderContainer 내부에 원을 그리하는 것입니다.

this.graphics.beginFill(0xff0000); 
    this.graphics.lineStyle(1, 0x00ff00); 
    this.graphics.drawCircle(0, 0, 50); 
    this.graphics.endFill(); 

미안하지만, 나는 아무것도 보이지 않는 이유는 무엇입니까? 나는 여기에 아주 기본적인 것을 놓치고 있어야한다는 것을 안다. 이처럼 그릴 수 있습니까? 아니면 다른 이벤트에서 그릴 수 있습니까?

P.S : 타원 개체를 만들고 테두리 컨테이너에 쉽게 추가 할 수 있음을 알고 있지만 그래픽 개체를 사용하여이 작업을 수행하는 방법을 알고 싶습니다.

답변

2

를 추적하려고합니다. 생성이 완료된 후 어떤 시점에서 상황이 새로 고쳐지고 있다고 생각합니다. 무대에 객체를 추가하는 대신 도면을 그리기 때문에 원은 실제로 어떤 라이프 사이클의 일부가 아니며 표시 목록이 더러워 지거나 다시 그려 질 때마다 지워집니다. 희망이 도움이됩니다.

+0

내가 가진 문제는 새 타원 개체를 만든 다음 BordnerContainer에 추가 할 수 있다는 것입니다. 그것은 작동하지만 또한 응용 프로그램을 고통스럽게 느리게 만듭니다. –

+0

그런 경우에는 BorderContainer에 대한 재정의 된 updateDisplayList 함수로 그리기 코드를 옮깁니다. –

2

두 가지 가능한 문제점이 있습니다.

  1. 스테이지
  2. 에 BorderContainer 개체를 추가하는 것을 잊지하면 BorderContainer 개체의 대한 참조입니다. 당신은 updateDisplayList을 무시하고이 도면의 종류를 할 것 옛날에 돌아 가기 이벤트 청취자의 , 또는 변화가 대상으로 또는 currenTarget
0
var _shape:Shape=new Shape(); 
addchild(_shape); 

_shape.graphics.lineStyle(1, 0x000000, 1); 
_shape.graphics.drawRect(10,5,100,100); 

위 코드를 사용하면 화면에 직사각형이 표시됩니다.