Как узнать высоту и ширину загружаемой картинки

То что касается флеша, но не касается ВКонтакте API. Например проблемы при создании прыгающего мячика.
Ответить
Аватара пользователя
BANAN
Сообщения: 96
Зарегистрирован: 10 мар 2010, 22:24

Как узнать высоту и ширину загружаемой картинки

Сообщение BANAN »

Помогите плиз. Как правильно загрузить картинку с url, чтобы потом узнать ее ширину и высоту?
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Как узнать высоту и ширину загружаемой картинки

Сообщение Александр »

Код: Выделить всё

var photoLoader:Loader = new Loader();
var photo = 'http://'; // ссылка на изображение
var request:URLRequest=new URLRequest(photo);
photoLoader.load(request);
photoLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaded);

function onLoaded(e:Event):void {
         trace(photoLoader.width); // ширина
         trace(photoLoader.height); // высота
}
Аватара пользователя
BANAN
Сообщения: 96
Зарегистрирован: 10 мар 2010, 22:24

Re: Как узнать высоту и ширину загружаемой картинки

Сообщение BANAN »

Как их использовать в любом месте кода? Делал так

Код: Выделить всё

package vk
{
    import flash.display.*;
    import flash.events.*;
    import flash.net.*;
    import locale.*;
    import vk.gui.*;
    import vk.*;
	
public class myClass extends Sprite
{		
private var image_url:* = null;
private var image_W:* = null;
private var image_H:* = null;

//конструктор
public function myClass(img_url:*):void
{
//загрузка изобржений
LoadImage(img_url);

//почему тут после загрузки картинки image_W и image_H равны null, я же вроде как присвоил им значения в функции imgLoaded. Если же я пишу этот кусок кода в imgLoaded, то все работает
//так неработает
var bg:* = new Sprite();
bg.x = 100;
bg.y = 100;
bg.width = image_W;
bg.height = image_H;
Utils.rect ( bg, bg.x, bg.y, bg.width, bg.height, 0xffffff);
addChild(bg);
}
		
private function LoadImage(url:*):void
{
loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, imgLoaded);
loader.load(new URLRequest(url));
}

private function imgLoaded(e:Event):* 
{ 
image_H = loader.height;
image_W = loader.width; 

//так работает
var bg:* = new Sprite();
bg.x = 100;
bg.y = 100;
bg.width = image_W;
bg.height = image_H;
Utils.rect ( bg, bg.x, bg.y, bg.width, bg.height, 0xffffff);
addChild(bg);
}

}
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Как узнать высоту и ширину загружаемой картинки

Сообщение Александр »

Потому что это ActionScript :)
В первом случае, ты вызываешь функцию LoadImage, и функция только начинает выполняться, а приложение выполняет код дальше. То есть ещё не завершив эту функцию, а значит и не записав новые значения, которые записываются только в функции imgLoaded.
Правильно делать так как во втором случае.
Аватара пользователя
BANAN
Сообщения: 96
Зарегистрирован: 10 мар 2010, 22:24

Re: Как узнать высоту и ширину загружаемой картинки

Сообщение BANAN »

Ок, спасибо
Ответить