Как получить ширину и высоту от объекта Loader - PullRequest
1 голос
/ 22 февраля 2010
package
{
    import flash.display.*;
    import flash.events.*;
    import flash.net.URLRequest;

    public class Main extends MovieClip
    {
        // state
        private var iname:String = "image.gif";
        private var w:int;
        private var h:int;
        private var loader:Loader;

        // constructor
        public function Main():void
        {
            loadImage( iname ); 
            trace( w + " " + h );

        }

        // methods
        private function loadImage( filename:String ):void
        {
            loader = new Loader();
            loader.contentLoaderInfo.addEventListener( Event.COMPLETE, completeHandler );
            loader.contentLoaderInfo.addEventListener( Event.COMPLETE, someHandler );
            var request:URLRequest = new URLRequest( filename );
            loader.load( request );
            this.addChild( loader );        
        }



        // event handlers
        private function completeHandler( event:Event ):void
        {           
            trace( "image loaded\n" + event.target.url );
            trace( event.target );
        }           

        private function someHandler( event:Event ):void
        {
            w = loader.contentLoaderInfo.width;
            h = loader.contentLoaderInfo.height;            
        }
    }
}

Но когда я бегу, я получаю 0 0 для ширины и высоты. Как я могу получить правильные значения? Также, если изображение загружено правильно и после того, как я прикрепил его к мувиклипу, почему я не могу взять ширину и высоту из объекта мувиклипа?

Ответы [ 3 ]

1 голос
/ 22 февраля 2010

Это только у меня или вы спрашиваете ширину и высоту до того, как завершится событие Complete? Какие результаты вы получите, если после их установки вы перенесете свои следы w и h в функцию someHandler?

0 голосов
/ 22 февраля 2010

Вы запрашиваете contentLoaderInfo.height ... вы должны запрашивать высоту содержимого.

h = event.target.content.height;
w = event.target.content.width;
0 голосов
/ 22 февраля 2010

Загрузка вашего изображения не мгновенная.
Проследите ширину и высоту в одном из ваших обработчиков Event.COMPLETE, и все будет работать отлично!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...