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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 07.10.2007, 03:15
Torero вне форума Посмотреть профиль Отправить личное сообщение для Torero Найти все сообщения от Torero
  № 1  
Ответить с цитированием
Torero
[+1.4 18.06.07]
 
Аватар для Torero

Регистрация: May 2007
Адрес: Moscow
Сообщений: 263
По умолчанию Загрузка данных из внешних файлов.

Доброго времени суток.
Есть несколько классов, загружающих информацию(xml, текст, картинки, swf) из внешних файлов. Решил процесс загрузки описать отдельным классом - не получается. Подскажите пжл.как это правильно реализовать:
а)Верна-ли вообще сама идея реализовать загрузчик через отдельный класс?
б)Конструктор не может быть сеттером - как передать данные объекту, вызвавшему класс? через "this"?
в)Как реализовать ожидание окончания загрузки?

Вот мой вариант: (нерабочий)
Код:
package {
import flash.display.Sprite;
	public class SomeClass extends Sprite {
		public function SomeClass(){
			var myXML:XML = new XML();
			myXML=XML(new FileLoad("test.xml"));
			trace("Загрузили:"+myXML); //Загрузили: [object FileLoad], а не "Загрузили: <xx>.....</xx>"
		}
	}
Код:
package {
import flash.display.Loader;
import flash.net.URLRequest;
	public class FileLoad extends Loader {
		public function FileLoad(filepath:String){
			var urlReq:URLRequest = new URLRequest(filepath);
			this.load(urlReq);
		}
	}
__________________
А я Томат.


Последний раз редактировалось Torero; 07.10.2007 в 03:17.
Старый 07.10.2007, 03:19
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 2  
Ответить с цитированием
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
1) Да
1.1) Класс flash.display.Loader создан для загрузки визуальной информации(swf, jpg, png). тебе нужно юзать flash.net.URLLoader
2) Дело вкуса, я считаю это лишними 500 миллисекундами затрачеными на ненужный апендикс.
3) через события.
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^

Старый 07.10.2007, 03:42
Torero вне форума Посмотреть профиль Отправить личное сообщение для Torero Найти все сообщения от Torero
  № 3  
Ответить с цитированием
Torero
[+1.4 18.06.07]
 
Аватар для Torero

Регистрация: May 2007
Адрес: Moscow
Сообщений: 263
2 Nirth:Спасибо за быстрый ответ.
А)
Цитата:
Сообщение от Nirth
1.1) Класс flash.display.Loader создан для загрузки визуальной информации(swf, jpg, png). тебе нужно юзать flash.net.URLLoader
То есть мне прийдется создать 2 класса: TextLoad и GraphLoad? или можно безболезненно это одним классом реализовать?

Цитата:
Сообщение от Nirth
2) Дело вкуса, я считаю это лишними 500 миллисекундами затрачеными на ненужный апендикс.
не в производительности дело.. объем кода минимизирую и писАть правильно учусь..
Б)
Цитата:
Сообщение от Nirth
3) через события.
Это понятно.. Вопрос в том как? События надо внутри класса-загрузчика прописывать или в том классе из которого этот загрузчик вызывается?

Исправил код загрузчика - все-равно не выдает нужный результат.

Код:
package {
import flash.display.Loader;
import flash.net.URLRequest;
	public class TextLoad extends URLLoader {
		public function TextLoad(filepath:String){
			var urlReq:URLRequest = new URLRequest(filepath);
			this.load(urlReq);
		}
	}
}
Код:
...
	myXML=XML(new TextLoad("test.xml"));
	trace("Загрузили: "+myXML);	//Загрузили: [object TextLoad]
...
__________________
А я Томат.

Старый 07.10.2007, 10:44
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 4  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
а) Зачем?
б) Конструктор — это функция, которая может иметь параметры;
в) Событиями.

В целом, писать отдельный класс для этого не вижу нужды.

Старый 07.10.2007, 13:50
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 5  
Ответить с цитированием
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
Цитата:
не в производительности дело.. объем кода минимизирую и писАть правильно учусь..
Я считаю не правильным тратить 500 миллисекунд на ненужный аппендикс.
Тоесть я считаю не правильным писать this
у __etc другое мнение.

Цитата:
Исправил код загрузчика - все-равно не выдает нужный результат.
Ну и что должен быть за результат?

Цитата:
То есть мне прийдется создать 2 класса: TextLoad и GraphLoad? или можно безболезненно это одним классом реализовать?
Зависит от объема кода, если ты собираешься парсить текст, валидировать, проверять че нить там, или выдерать отдельные куски. То писать стоит.

Если просто грузить файлы то URLLoader уже существует, он отлично грузит файлы.
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^


Последний раз редактировалось Nirth; 07.10.2007 в 13:52.
Старый 07.10.2007, 14:21
Torero вне форума Посмотреть профиль Отправить личное сообщение для Torero Найти все сообщения от Torero
  № 6  
Ответить с цитированием
Torero
[+1.4 18.06.07]
 
Аватар для Torero

Регистрация: May 2007
Адрес: Moscow
Сообщений: 263
Цитата:
Сообщение от __etc
В целом, писать отдельный класс для этого не вижу нужды.
А разве многократный импорт не есть зло?

Цитата:
Сообщение от Nirth
Ну и что должен быть за результат?
В данном случае - XML из файла, а не [object TextLoad].
__________________
А я Томат.

Старый 07.10.2007, 14:31
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 7  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Многократный импорт? ))
Директива import лишь указывает компилятору на то, какие области видимости классов нужно создать и все. Перед выполнением кода создается так называемый scope-стек, в котором хранятся все области видимости классов.
И, если уж рассуждать логически, то от отдельного класса станет меньше импортов? Нет, не станет, будет столько же + одна штука.
Выполнять непосредственную загрузку данных-то кто будет? Да все те же встроенные классы.
Идея одного интерфейса хороша, но её уже выполняет URLLoader, который может грузить данные в различных форматах, как в текстовых, так и бинарных. Что делать с полученными данными — решать программисту.

Старый 07.10.2007, 15:04
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 8  
Ответить с цитированием
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
Цитата:
В данном случае - XML из файла, а не [object TextLoad].
для этого надо переопределить метод toString()...
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^

Старый 07.10.2007, 15:15
screamge вне форума Посмотреть профиль Отправить личное сообщение для screamge Посетить домашнюю страницу screamge Найти все сообщения от screamge
  № 9  
Ответить с цитированием
screamge
Ветеран форума
 
Аватар для screamge

Регистрация: Jul 2006
Адрес: Грузия, Тбилиси
Сообщений: 2,675
У меня лоудер вынесен в отдельный класс исключетельно из соображения использования одного прелоудера во всём проекте и грузит он при вызове статичного метода loadmc в который передаётся адрес мувика в который нужно грузить или имя клипа который нужно создать, меторасположение лоудера (_х, _у) или булево значение отвечающее за вывод клипа лоудера по центру созданного/указанного мувика. В принципе удобно.
__________________
Free-lance | Twitter | Me

Старый 07.10.2007, 15:24
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 10  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от screamge
У меня лоудер вынесен в отдельный класс исключетельно из соображения использования одного прелоудера во всём проекте и грузит он при вызове статичного метода loadmc в который передаётся адрес мувика в который нужно грузить или имя клипа который нужно создать, меторасположение лоудера (_х, _у) или булево значение отвечающее за вывод клипа лоудера по центру созданного/указанного мувика. В принципе удобно.
Дядь, мы в разделе AS3 =)

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

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

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


 


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


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