as3:sprite를 용기로 사용할 때width,height를 지정하지 않는 것이 좋습니다

1283 단어 height
공식 설명:
TextField와 Video 대상을 제외하고 내용이 없는 디스플레이 대상 (빈 Sprite) 의 높이는 0입니다. height 을 다른 값으로 설정하려고 해도 마찬가지입니다.height 속성을 설정하면 scaleY 속성이 상응하여 조정됩니다(width 유추)
 
즉, 빈sprite는 width를 설정해도 height가 소용없다. (인위적으로 설정하면 오히려 부작용이 있을 수 있다. 아래 코드 참조)
var _sprite:Sprite = new Sprite();
_sprite.width=100;
_sprite.height=100;
addChild(_sprite);
trace(_sprite.width,_sprite.height);//0 0
_sprite.graphics.beginFill(0xff0000);
_sprite.graphics.drawRect(0,0,400,300);
_sprite.graphics.endFill();
trace(_sprite.width,_sprite.height);// 0 0

주의: 여기는 인위적으로 지정된sprite의 width,height는 100이지만trace를 사용할 때 0을 출력합니다. 더 나쁜 것은 뒤에도sprite에 400*300의 빨간색 직사각형을 그렸는데,sprite의 넓이가 여전히 0이어서 무대에서 아무것도 볼 수 없습니다!
 
인위적으로 width를 설정하면, Height의 문장을 삭제합니다.
var _sprite:Sprite = new Sprite();
//_sprite.width=100;
//_sprite.height=100;
addChild(_sprite);
trace(_sprite.width,_sprite.height);//0 0
_sprite.graphics.beginFill(0xff0000);
_sprite.graphics.drawRect(0,0,400,300);
_sprite.graphics.endFill();
trace(_sprite.width,_sprite.height);// 400 300

지금sprite는 자동으로 디스플레이 내용에 따라 사이즈를 400*300으로 조정하여 빨간색의 직사각형이 정상적으로 표시됩니다.

좋은 웹페이지 즐겨찾기