문제

커스텀 드로잉을하는 스프라이트가 있지만 컨테이너가 스프라이트를 올바르게 배치 할 위치를 알고 싶습니다. 이를 위해 컨테이너는 스프라이트가 얼마나 큰지 알아야합니다. uicomponents는 측정 단계를 거치지 만 스프라이트는 그렇지 않습니다. 스프라이트가 될 크기를 어떻게 계산합니까?

편집하다: event.enter_frame에서 드로잉을하고 있습니다. 애니메이션이므로 얼마나 큰지 미리 알 수 없습니다. uicomponent에는 측정 기능이 있으며 비슷한 것을 만들고 싶습니다.

도움이 되었습니까?

해결책

정확한 대답은 내가 모을 수있는 한, 미리 알 수 없다. 실제로 크기를 결정하기 위해 스프라이트에 들어가야한다.

다른 팁

스프라이트는 당신이 그린 크기를 가져옵니다. 무언가를 그릴 때까지 크기가 전혀 없습니다. 응용 프로그램에서 먼저 테두리 (직사각형)를 그린 다음 스프라이트를 측정 할 수 있습니다. 그러나 나중에 국경 밖에 그리지 마십시오.

또한, 당신이 그리는 것에 따라, 당신은 수학을 사용하여 최종 크기를 사전 계산할 수 있습니다.

즉 원을 그리는 경우 수학을 사용하여 최종 높이 / 너비를 파악할 수 있습니다.

마이크

여기를 살펴보십시오 - 이것이 귀하의 질문에 답하기를 바랍니다.

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">

    <mx:Script>
        <![CDATA[

            import mx.core.UIComponent;

            private var s:Sprite;
            private var w:UIComponent;

            override protected function createChildren():void
            {           
                super.createChildren();

                if (!s)
                    s = getSprite();

                w = new UIComponent();

                trace("The sprite measures " + s.width + " by " + s.height + ".");

                w.addChild(s);
                box.addChild(w);
            }

            private function getSprite():Sprite
            {
                var s:Sprite = new Sprite();
                s.graphics.lineStyle(1, 0xFFFFFF);
                s.graphics.beginFill(0xFFFFFF, 1);
                s.graphics.drawRect(0, 0, Math.floor(Math.random() * 1000), Math.floor(Math.random() * 1000));
                s.graphics.endFill();

                return s;
            }

        ]]>
    </mx:Script>

    <mx:Box id="box" backgroundColor="#FFFFFF" />

</mx:Application>

이것을 실행하면 추적 명령문은 무작위로 생성되는 그려진 스프라이트의 높이와 너비를 표시해야합니다. 다시 말해, 높이와 너비 특성을 쿼리하여 스프라이트의 높이와 너비를 얻을 수 있습니다.

스프라이트 너비와 높이를 기반으로 다른 구성 요소를 레이아웃해야하지만 실제로 그려러 가기 전에 Flash.Display.shape 객체를 그릴 수 있습니다.이 크기를 참조로 사용한 다음 스프라이트에 모양을 부착하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top