2011-08-09 1 views
0

저는 슬라이더 클래스 (SliderUI)가 있으며 슬라이더와 트랙 이미지를 해당 클래스에 스프라이트로 전달하고 있습니다.Sprite의 하위 이미지에 대한 너비 설정

내가하려는 것은 스프라이트로 하나 더 많은 이미지를 전달하고 슬라이더에서 마스킹을 수행하기 위해 너비를 변경하는 것입니다. (볼륨 슬라이더를 움직일 때 확장되거나 축소됩니다)

스프라이트의 너비를 변경하려고하면 스프 라이트가 나타나지 않고 스프라이트가 컨테이너 일 뿐이며 크기를 조정하면 사라집니다.

그렇다면 하위 이미지로 스프라이트의 크기를 조정하려면 어떻게해야합니까? (그런데 그것은 로더 객체에 의해로드됩니다)?

답변

0

예, 크기를 조정하면 스프라이트가 사라집니다. Sprite의 너비와 높이를 수동으로 설정하면 크기 조절과 같은 효과를냅니다. 스프라이트에 아무 것도 표시되지 않으면 배율을 "아무것도 설정하지 못해"표시되지 않습니다. Sprite의 너비와 높이를 지정하려면 그 위에 무언가를 그립니다. 투명 사각형 : 여기에

sprite.graphics.lineStyle(1, 0, 0); 
sprite.graphics.drawRect(0, 0, myWidth, myHeight); 

좀 더 세부 정보 : 는 http://www.kirupa.com/forum/archive/index.php/t-274593.html

UPD : 당신이 이미지가로드되기 전에 스프라이트 크기를 설정하면

var sprite:Sprite = new Sprite; 
var loader:Loader = new Loader(); 
sprite.addChild(loader); 
loader.load(new URLRequest("road_01.png")); 

, 스프라이트는 표시되지 않습니다.

해결 방법 1 : 로더에서 이벤트 완료 후 수신 대기하고 크기를 설정하십시오.

loader.loaderInfo.addEventListener(Event.COMPLETE, onImageLoaded); 

private function onImageLoaded(event:Event):void 
{ 
    // whatever you want to make with sprite 
    // e.g. 
    sprite.width = 100; 
} 

Solution2 : 나는 것을 어떻게 할 수 ... 나는 스프라이트의 이미지를로드하고있어

var sprite:Sprite = new Sprite; 
var loader:Loader = new Loader(); 
sprite.addChild(loader); 
loader.load(new URLRequest("road_01.png")); 
sprite.scaleX = 0.5; 
+0

을 나는 스프라이트와 이미지 크기를 조정하려면 : 사용 스프라이트의 scaleXscaleY 특성을 크기를 조정하려면 ? –

+0

맞다면 다음과 같은 것이 있습니다 :'var sprite : Sprite = new Sprite; \t \t \t \t var loader : Loader = new Loader(); \t \t \t \t sprite.addChild (loader); \t \t \t \t loader.load (new URLRequest ("road_01.png")); '이미지가로드되기 전에 크기를 스프라이트로 설정하면 스프라이트가 표시되지 않습니다. Solution1 : 로더에서 complete 이벤트를 수신하면 'loader.loaderInfo.addEventListener (Event.COMPLETE, onImageLoaded);'및 이후 크기를 설정합니다. Solution2 : 스프라이트의 'scaleX' 및'scaleY' 속성을 사용하여 크기를 조절합니다. – moropus

+0

그게 효과가 있었나요? – moropus