![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Oct 2008
Сообщений: 14
|
Ребята собственно такой вопрос, как отобразить картинку со стороннего сайта во флеше + еще интересует как реализовать загрузку текста тоже с другого сайта, например из файла text.txt расположенного например по адресу http://site.ru/text.txt
|
|
|||||
|
Модрон-ветеринар
|
1. Изображения и сторонние swf.
Посмотрите пример по классу MovieClipLoader. Например, откройте новый проект, вставьте следующий код в кадр и проверьте его работу: var cont:MovieClip = this.createEmptyMovieClip('container_mc', this.getNextHighestDepth()); var mcl:MovieClipLoader = new MovieClipLoader(); mcl.loadClip('http://www.flasher.ru/forum/images/russian/flasher_logo.gif', cont); Без такого разрешения мало что можно сделать с загруженным. Например, можно изменить масштаб или аналогичные простые действия: var cont:MovieClip = this.createEmptyMovieClip('container_mc', this.getNextHighestDepth()); var mcl:MovieClipLoader = new MovieClipLoader(); var listener:Object = new Object(); listener.onLoadInit = function (mc:MovieClip) { mc._xscale = mc._yscale = 50; }; mcl.addListener(listener); mcl.loadClip('http://www.flasher.ru/forum/images/russian/flasher_logo.gif', cont); Отдельно обращаю внимание: 1) Оперировать загруженным начинать можно только изнутри обработчика события onLoadInit, как видно из примера выше. Это связано с асинхронностью работы кода, требуется отследить момент готовности загружаемого контента для начала каких-либо действий с ним. 2) Проверять лучше всего не из среды разработки, так как в ней все будет работать и без кросдоменника, а непосредственно либо из standalone плеера, либо будучи уже залитым на хостинг. 2. Текст и переменные из файлов. По второму вопросу - ситуация похожая. Только класс там нужно использовать LoadVars. В хелпе есть множество примеров по использованию методов этого класса, предназначенных для загрузки текстовой информации из файлов. Для загрузки и отображения текста "as is" используйте метод load и обработчик события onData. Для получения набора значений переменных и их разбора - обработчик onLoad. Вообще, если с хелпом дружите, то проблем у вас быть не должно, в нем масса примеров по методам и свойствам этих классов. Но и на форуме есть много примеров для конкретных ситуаций. Не вздумайте только использовать такие функции как loadMovie (для картинок) или loadVariables (для текста). Морально устарели и влекут за собой кучу проблем при попытке полноценного использования загруженного.
__________________
Идите первым! Последний раз редактировалось mooncar; 05.02.2011 в 11:25. |
|
|||||
|
Модрон-ветеринар
|
Спасибо. Удобно тем, что потом можно ссылку давать.
__________________
Идите первым! |
|
|||||
|
Регистрация: Oct 2008
Сообщений: 14
|
mooncar,
Громадное спасибо - так много всего расписали! Все сидел делал, старался самостоятельно разобраться, но у меня некоторые вопросы все же остались, в коде написал: xmlData = new XML(); xmlData.ignoreWhite = true; xmlData.load("data.xml"); xmlData.onLoad = function(success:Boolean){ //вот например отсюда данные могут попасть a = 1; } //вот сюда? txt.text = a; _______________ И немного про другое: http://flasher.ru/forum/showthread.p...dVars&p=948129 var strings:Array = []; var lv:LoadVars = new LoadVars(); lv.onData = lv_onDataHandler; lv.load("1.txt"); function lv_onDataHandler(source:String):Void { strings = source.split("\r\n"); } txt.text = strings[3]; //в текстовом поле отобразиться 3я строка из файла 1.txt Вот этого не понял. И еще раз большое спасибо за подробное разъяснение! Последний раз редактировалось carver_joy; 05.02.2011 в 22:43. |
|
|||||
|
блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
|
По первому вопросу — onLoad вызывается, когда произошла полная загрузка, это не зависит от выполнения самого кода. В вашем случае переменная "a" будет инициализирована только после полной загрузки, но вы же пытаетесь ее использовать сразу же после того, как начали загрузку.
По второму вопросу — все, вроде правильно. Функция split возвращает массив из элементов строки, разделенных каким-либо символом. split("") вернет массив из символов, по одному. split("\n") вернет массив из строк.
__________________
hauts.ru |
|
|||||
|
Модрон-ветеринар
|
Автор, совет вам по первому вопросу.
Я, например, все внешние данные стараюсь получать еще в прелоадере, в котором учитываются загрузка их всех. После перехода в рабочий кадр все данные становятся уже доступны. PS. Не надо никаких _global. PPS. На будущее. Один вопрос - одна тема.
__________________
Идите первым! |
|
|||||
|
Просто так, до кучи, относительно анализа кода. Удобно для анализа ХМЛ-ей. Сам недавно нашел и везде теперь втыкаю. А то фиг поймешь что где глючит.
if (xmlData.status != 0) { var errorMessage:String; switch (xmlData.status) { case -2 : errorMessage = "A CDATA section was not properly terminated."; break; case -3 : errorMessage = "The XML declaration was not properly terminated."; break; case -4 : errorMessage = "The DOCTYPE declaration was not properly terminated."; break; case -5 : errorMessage = "A comment was not properly terminated."; break; case -6 : errorMessage = "An XML element was malformed."; break; case -7 : errorMessage = "Out of memory."; break; case -8 : errorMessage = "An attribute value was not properly terminated."; break; case -9 : errorMessage = "A start-tag was not matched with an end-tag."; break; case -10 : errorMessage = "An end-tag was encountered without a matching start-tag."; break; default : errorMessage = "An unknown error has occurred."; break; } trace ( "XML Structure Error:"+prof.status+" - "+errorMessage } |
![]() |
![]() |
Часовой пояс GMT +4, время: 01:27. |
|
|
« Предыдущая тема | Следующая тема » |
|
|