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

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

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

Регистрация: Apr 2002
Адрес: Россия, СПб
Сообщений: 8
Отправить сообщение для BOEHPYK с помощью ICQ
По умолчанию Загрузка картинок и определение их размера

Задача, в принципе тривиальная, но возникла странная проблема.
Вот, к примеру, код с сайта Макромедии:

Код:
var loadListener:Object = new Object();

loadListener.onLoadInit = function(target_mc:MovieClip):Void {
    trace(">> loadListener.onLoadInit()");
    trace(">> =============================");
    trace(">> target_mc._width: " + target_mc._width); // 315
    _root.imageWidth = target_mc._width;  //вот тут хочу выдернуть значение ширины
}

var mcLoader:MovieClipLoader = new MovieClipLoader();
mcLoader.addListener(loadListener);

var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth());
mcLoader.loadClip("http://www.w3.org/Icons/w3c_main.png", mc);

trace(_root.imageWidth); // выдает undefined
По событию onLoadInit прекрасно определяется ширина картинки. Но я никак не могу выдернуть значение ширины в некую глобальную переменную, доступную из любого места в дальнейшем коде. Она доступна либо внутри события onLoadInit, либо, если я вешаю туда функцию - внутри это функции.
Попытки присвоить внутри этой функции значение ширины некой глобальной переменной ни к чему не приводят, поскольку код выполняется не дожидаясь загрузки картинки.
Может быть, кто-то сталкивался с подобной проблемой?
Заранее благодарен за ответ.

Старый 18.08.2006, 15:51
Sneg вне форума Посмотреть профиль Отправить личное сообщение для Sneg Найти все сообщения от Sneg
  № 2  
Ответить с цитированием
Sneg
 
Аватар для Sneg

Регистрация: Oct 2005
Адрес: Russia, Moscow
Сообщений: 316
Отправить сообщение для Sneg с помощью ICQ
Код:
import mx.utils.Delegate;

var loadListener:Object = new Object();
var width_object:Object = new Object();
var mcLoader:MovieClipLoader = new MovieClipLoader();
mcLoader.addListener(loadListener);

loadListener.onLoadInit = Delegate.create(this,onLoadInit);

function onLoadInit(target_mc:MovieClip):Void {
	width_object.imageWidth=target_mc._width;
	showWidthObject();
};

function showWidthObject():Void {
	trace(width_object.imageWidth);
};

var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth());
mcLoader.loadClip("http://www.w3.org/Icons/w3c_main.png", mc);


Последний раз редактировалось Sneg; 18.08.2006 в 15:58.
Создать новую тему Ответ Часовой пояс GMT +4, время: 03:38.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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