![]() |
Как вернуть строку из URLLoader
Уважаемые форумчане, помогите мне пожалуйста!
Я, наверное, чего-то не понимаю, но почему в следующем коде я никак не могу получить строку на выходе??? Код:
function textLoader():StringЗаранее спасибо! |
всё правильно.
Функция textLoader, не дождавшись окончания загрузки возвращает ничего. Загрузка файла происходит не моментально, а Action Script исполняется в одном потоке. Функция completeHandler будет вызвана по окончании загрузки файла. |
Цитата:
|
Зачем копировать?
Где нарушается ООП? Для обработки данные нужно сначала загрузить. |
vvk80, отредактируйте свой пост и оформите код тегами [code][/code].
|
Цитата:
Заранее спасибо! |
Загрузка данных происходит асинхронно с кодом. Их невозможно вернуть сражу же после вызова load.
|
Ну у тебя всё верно, кроме функции, которой ты захотел всё заинкапсулировать и моментально возвратить. Общий план такой:
Код:
var loader:URLLoader = new URLLoader(); |
Цитата:
Пока обойдемся без инкапсуляции;) А потом я туда таймер запихну, который будет смотреть, когда переменная заполнится и возвращать ее... Хотя таймер ресурсы жрет дико... я тут решил картинки подвигать по таймеру, так у меня 100% загрузка процессора |
Какой таймер?
completeHandler это всё что нужно. А чего-то двигать по экрану нужно по событию Event.ENTER_FRAME ... Посмотри внимательнее примеры в хелпе. |
Цитата:
В АС3 просто не возможно сделать так чтобы одна функция посылала и возвращала результат, даже не пытайтесь - просто потратите время. |
Решение проблемы теоретически найдено (на тестовом примере вроде работает):
Код:
package HelperClassesКод:
var myText:LoadText = new LoadText("Texts\\sample.txt");Кстати, если я вдруг написал откровенную чушь, прошу поправить... я начинающий, так что буду рад любым комментам :) |
значение переменной будет видно везде, но только после события dataWritten..
насчет выноса функциональность загрузки файла в отдельный класс и вещания своего события: не очень понятно что это тебе дает.. загрузка и так вынесена в отдельный класс (URLLoader), можно его просто расширить, привязав экземпляр к конкретному урлу в конструкторе: Код:
package {Код:
var myText:TextLoader=new TextLoader("sample.txt"); |
| Часовой пояс GMT +4, время: 12:11. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.