Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 09.02.2009, 21:02
Sajaxt вне форума Посмотреть профиль Отправить личное сообщение для Sajaxt Найти все сообщения от Sajaxt
  № 1  
Ответить с цитированием
Sajaxt
 
Аватар для Sajaxt

Регистрация: Dec 2008
Адрес: Германия
Сообщений: 78
Отправить сообщение для Sajaxt с помощью ICQ Отправить сообщение для Sajaxt с помощью Skype™
По умолчанию Не получается получить ширину картинки...

Доброе время суток!

Вообщем вопрос таков:
Имеется некий загрузчик, с помощью которого загружается картинка во флэш, когда пытаюсь обратится к ширене данной картинки, выдаёт 0.
Почему или как мне узнать ширину в пикселах?

Вот собственно код:

Код AS3:
...
			var pic_loader:Loader = new Loader();
			var pic_url_req:URLRequest = new URLRequest(pic_rote);
			pic_loader.load(pic_url_req);
			addChild(pic_loader);
			trace(pic_loader.width);
...
Зарание благодарен!
__________________
Ошибок не делает лишь тот, кто ничего не делает!

Старый 09.02.2009, 21:19
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 2  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
Ну конечно, пока он загрузит картинку - пройдет некоторое время, пусть даже картинка на локальном носителе - она загрузиться не мгновенно. (не верите - в блоге у __etc самая 1 запись).
Подписывайтесь у Event.COMPLETE, после чего смотрите.

Старый 09.02.2009, 21:20
Sajaxt вне форума Посмотреть профиль Отправить личное сообщение для Sajaxt Найти все сообщения от Sajaxt
  № 3  
Ответить с цитированием
Sajaxt
 
Аватар для Sajaxt

Регистрация: Dec 2008
Адрес: Германия
Сообщений: 78
Отправить сообщение для Sajaxt с помощью ICQ Отправить сообщение для Sajaxt с помощью Skype™
дык так и делаю!
__________________
Ошибок не делает лишь тот, кто ничего не делает!

Старый 09.02.2009, 21:21
_Smirnoff вне форума Посмотреть профиль Отправить личное сообщение для _Smirnoff Найти все сообщения от _Smirnoff
  № 4  
Ответить с цитированием
_Smirnoff
 
Аватар для _Smirnoff

блогер
Регистрация: Jul 2007
Адрес: Russia
Сообщений: 292
Записей в блоге: 5
Нельзя померить ширину/высоту, того чего еще не видно.
__________________
Оптимизация производительности на уровне кода

Старый 09.02.2009, 21:28
Sajaxt вне форума Посмотреть профиль Отправить личное сообщение для Sajaxt Найти все сообщения от Sajaxt
  № 5  
Ответить с цитированием
Sajaxt
 
Аватар для Sajaxt

Регистрация: Dec 2008
Адрес: Германия
Сообщений: 78
Отправить сообщение для Sajaxt с помощью ICQ Отправить сообщение для Sajaxt с помощью Skype™
дык я ведь меряю после команды AddChild();
__________________
Ошибок не делает лишь тот, кто ничего не делает!

Старый 09.02.2009, 21:35
musat вне форума Посмотреть профиль Отправить личное сообщение для musat Найти все сообщения от musat
  № 6  
Ответить с цитированием
musat
 
Аватар для musat

Регистрация: Jul 2007
Адрес: Дубна, Моск.обл.
Сообщений: 108
Можно мерять и без addChild(), ведь свойство width у DisplayObject'ов есть всегда. Главное - дождаться окончания загрузки картинки (о чем и говорил Psycho Tiger)
Код AS3:
function loadPic():void {
	...
	pic_loader.load(pic_url_req);
	pic_loader.addEventListener(Event.COMPLETE, loadPicHandler);
}
 
function loadPicHandler(e:Event):void {
	trace(pic_loader.width);
}


Последний раз редактировалось musat; 09.02.2009 в 21:37.
Старый 09.02.2009, 21:38
Sajaxt вне форума Посмотреть профиль Отправить личное сообщение для Sajaxt Найти все сообщения от Sajaxt
  № 7  
Ответить с цитированием
Sajaxt
 
Аватар для Sajaxt

Регистрация: Dec 2008
Адрес: Германия
Сообщений: 78
Отправить сообщение для Sajaxt с помощью ICQ Отправить сообщение для Sajaxt с помощью Skype™
Код AS3:
package{
	import flash.display.*;
	import flash.net.*;
	import flash.xml.*;
	import flash.events.*;
 
	public class Galery extends Sprite{
 
		private var gal_XML:XML = new XML();  		// Определяем новый xml
		private var xml_rote:String = "gall.xml";   // А таакже путь к нему
		private var url_request:URLRequest = new URLRequest(xml_rote);  // Запрос!!
		private var xml_loader:URLLoader = new URLLoader(url_request); // Загрузчик файла
		private var crnt_pic:Number = 0;    //Номер текущей картинки
		private var pic_cnt:Number = 0;		//Количество картинок		
	//-------------------------------------------------------------------
		public function Galery():void{
			xml_loader.addEventListener("complete",xml_loaded);
			gal_XML.ignoreWhitespace=true;
		}
	//-------------------------------------------------------------------
		private function xml_loaded(e:Event):void{
			gal_XML= XML(xml_loader.data);
			pic_cnt = gal_XML.item.length();
 
			trace(gal_XML.item[crnt_pic].cmt);
 
			load_pic(gal_XML.item[crnt_pic].img);
 
			xml_loader.removeEventListener("complete",xml_loaded);
		}
	//-------------------------------------------------------------------
		private function load_pic(pic_rote:String):void{
			var pic_loader:Loader = new Loader();
			var pic_url_req:URLRequest = new URLRequest(pic_rote);
			pic_loader.load(pic_url_req);
			addChild(pic_loader);
			trace(pic_loader.width);
			pic_loader.scaleX=0.1;
			pic_loader.scaleY=0.1;
		}
}
__________________
Ошибок не делает лишь тот, кто ничего не делает!

Старый 09.02.2009, 21:38
ZlobaZl вне форума Посмотреть профиль Отправить личное сообщение для ZlobaZl Найти все сообщения от ZlobaZl
  № 8  
Ответить с цитированием
ZlobaZl
[+1 16.02.09]
[++1 16.02.09]

Регистрация: Jan 2009
Сообщений: 41
musat через функцию loadPicHandler(e:Event) делает. Попробуй её с помощью листера на событие мышки показать ширину. Когда её точно увидишь на экране кликай)

Добавлено через 3 минуты
А попробуй поменять addChild(pic_loader);
с Trace
Так:
trace(pic_loader.width);
addChild(pic_loader);

Старый 09.02.2009, 21:44
Sajaxt вне форума Посмотреть профиль Отправить личное сообщение для Sajaxt Найти все сообщения от Sajaxt
  № 9  
Ответить с цитированием
Sajaxt
 
Аватар для Sajaxt

Регистрация: Dec 2008
Адрес: Германия
Сообщений: 78
Отправить сообщение для Sajaxt с помощью ICQ Отправить сообщение для Sajaxt с помощью Skype™
попробывал-бестолку
__________________
Ошибок не делает лишь тот, кто ничего не делает!

Старый 09.02.2009, 21:49
ZlobaZl вне форума Посмотреть профиль Отправить личное сообщение для ZlobaZl Найти все сообщения от ZlobaZl
  № 10  
Ответить с цитированием
ZlobaZl
[+1 16.02.09]
[++1 16.02.09]

Регистрация: Jan 2009
Сообщений: 41
Самый прикол что выдает 0 а не NaN или Undefined

Создать новую тему Ответ Часовой пояс GMT +4, время: 14:09.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 14:09.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.