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

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

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

Регистрация: Sep 2005
Сообщений: 50
По умолчанию Loader vs dynamic

Это...
Вот есть какой-то класс. Он не dynamic. Возможно ли как-то хранить данные в нём, которые не были описаны ?

В общем нужно вот, что:

Код:
static public class ImageLoader
{
    static public load(param_url, param_some_container)
    {
        var imageLoader = new Loader();

        // ошибка!!! так делать нельзя, а хочется )
        imageLoader.some_container = param_some_container;
			
        var imageURLReq:URLRequest = new URLRequest(param_url);
						
        imageLoader.load(imageURLReq);

        imageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, imgLoaded);      
    }

    private function imgLoaded(param_event)
    {
        // неа, не получится )
        var container = param_event.target.loader.some_container;

        container.addChild(event.target.loader.content);
    }
}
Обратите внимание, что класс статичный, по этому хранить some_container как переменную класса в моём случае не имеет смысла. Как я могу её получить ? Или как передать с param_event какую-то переменную ?

Этот класс будет использоваться примерно так:

ImageLoader.load("test.jpg", stage.test_mc);
ImageLoader.load("test1.jpg", stage.test1_mc);

Как бы вот так сделать в AS3 ?

Старый 12.09.2007, 13:27
fishbounce вне форума Посмотреть профиль Отправить личное сообщение для fishbounce Посетить домашнюю страницу fishbounce Найти все сообщения от fishbounce
  № 2  
Ответить с цитированием
fishbounce

Регистрация: Dec 2003
Адрес: Москва
Сообщений: 176
Можно так:
Код:
public class ImageLoader {
  staic public function load(url : String, target : Container) {
    var imgLoader : ImageLoader = new ImagerLoader(target);
    imgLoader.load(url);
  }
  

  private var target : Container = null;
  
  private var loader : Loader = null;  


  public function ImageLoader(target : Container) {  
    this.loader = new Loader();
    this.target = target;

    loader.addEventListener(Event.COMPLETE, loader_completeHandler);
  }

  public function load(url : String) : void {
    loader.load(new URLRequest(url));
  }


  private function loader_completeHandler(event : Event) : void {
    target.addChild(loader.content);
    loader.removeEventListener(Event.COMPLETE, loader_completeHandler);
  }

Старый 12.09.2007, 16:33
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 3  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
Цитата:
Сообщение от nauroman
Это...
Вот есть какой-то класс. Он не dynamic. Возможно ли как-то хранить данные в нём, которые не были описаны ?
ну а почему не описать-то, собственно:
Код:
package {
	import flash.display.*;
	import flash.events.Event;
	import flash.net.URLRequest;
	public  class ImageLoader {
		static public function load(param_url:String, param_some_container:DisplayObjectContainer):void	{
			var imageLoader:TargetLoader = new TargetLoader(param_some_container);
			imageLoader.load(new URLRequest(param_url));
			imageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, imgLoaded);      
		}
		private static function imgLoaded(evnt:Event):void{
			var loader:TargetLoader=evnt.target.loader as TargetLoader;
			loader.targetObj.addChild(loader.content);
		}
	}
}
import flash.display.*;
class TargetLoader extends Loader{
	public var targetObj:DisplayObjectContainer;
	public function TargetLoader(param_container:DisplayObjectContainer){
		targetObj=param_container;
	}
}
ImageLoader.load("test.jpg",this);

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

Регистрация: Sep 2005
Сообщений: 50
Спасибо. То, что нужно. Пока не принюхался к extends, а в AS3 на них многое держится

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

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

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


 


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


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