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

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

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

Регистрация: Oct 2008
Сообщений: 14
По умолчанию Как отобразить картинку со стороннего сайта во флеш?

Ребята собственно такой вопрос, как отобразить картинку со стороннего сайта во флеше + еще интересует как реализовать загрузку текста тоже с другого сайта, например из файла text.txt расположенного например по адресу http://site.ru/text.txt

Старый 04.02.2011, 17:54
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 2  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
1. Изображения и сторонние swf.

Посмотрите пример по классу MovieClipLoader.
Например, откройте новый проект, вставьте следующий код в кадр и проверьте его работу:
Код AS1/AS2:
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);
Только есть одно важное обстоятельство: полноценно использовать загруженный контент можно только при наличии разрешения со стороны владельца сайта. Технически это выражается в том, что на стороннем сайте должен находится кросдоменник, т.е. файл политики безопасности crossdomain.xml (обычно лежит в корне), в котором указаны домены, флешкам с которых разрешено грузить и использовать их контент.
Без такого разрешения мало что можно сделать с загруженным. Например, можно изменить масштаб или аналогичные простые действия:
Код AS1/AS2:
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.
Старый 05.02.2011, 11:02
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 3  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
mooncar, в очередной раз у вас шикарный ответ.
__________________
hauts.ru

Старый 05.02.2011, 11:21
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 4  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Спасибо. Удобно тем, что потом можно ссылку давать.
__________________
Идите первым!

Старый 05.02.2011, 11:31
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 5  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
Из таких ссылок можно составить краткий курс для начинающих
__________________
hauts.ru

Старый 05.02.2011, 22:36
carver_joy вне форума Посмотреть профиль Отправить личное сообщение для carver_joy Найти все сообщения от carver_joy
  № 6  
Ответить с цитированием
carver_joy

Регистрация: Oct 2008
Сообщений: 14
mooncar,
Громадное спасибо - так много всего расписали! Все сидел делал, старался самостоятельно разобраться, но у меня некоторые вопросы все же остались, в коде написал:
Код AS1/AS2:
xmlData = new XML();
xmlData.ignoreWhite = true;
xmlData.load("data.xml");
xmlData.onLoad = function(success:Boolean){
//вот например отсюда данные могут попасть
a = 1;
}
//вот сюда?
txt.text = a;
Такое ощущение, что за onLoad они не могут выбраться даже _global
_______________

И немного про другое:
http://flasher.ru/forum/showthread.p...dVars&p=948129
Код AS1/AS2:
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");
}
Я так понимаю данные считанны в массив strings, а что там в коде добавить, чтоб работать с ними как с массивом? Чтоб можно вывести на экран например вот так:
txt.text = strings[3]; //в текстовом поле отобразиться 3я строка из файла 1.txt
Вот этого не понял. И еще раз большое спасибо за подробное разъяснение!


Последний раз редактировалось carver_joy; 05.02.2011 в 22:43.
Старый 05.02.2011, 23:52
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 7  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
По первому вопросу — onLoad вызывается, когда произошла полная загрузка, это не зависит от выполнения самого кода. В вашем случае переменная "a" будет инициализирована только после полной загрузки, но вы же пытаетесь ее использовать сразу же после того, как начали загрузку.

По второму вопросу — все, вроде правильно. Функция split возвращает массив из элементов строки, разделенных каким-либо символом.

split("") вернет массив из символов, по одному.

split("\n") вернет массив из строк.
__________________
hauts.ru

Старый 06.02.2011, 05:43
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 8  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Автор, совет вам по первому вопросу.
Я, например, все внешние данные стараюсь получать еще в прелоадере, в котором учитываются загрузка их всех. После перехода в рабочий кадр все данные становятся уже доступны.

PS. Не надо никаких _global.
PPS. На будущее. Один вопрос - одна тема.
__________________
Идите первым!

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

блогер
Регистрация: Apr 2008
Адрес: SPb
Сообщений: 3,718
Записей в блоге: 5
Отправить сообщение для dark256 с помощью ICQ Отправить сообщение для dark256 с помощью Skype™
Просто так, до кучи, относительно анализа кода. Удобно для анализа ХМЛ-ей. Сам недавно нашел и везде теперь втыкаю. А то фиг поймешь что где глючит.


Код AS1/AS2:
	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
	}
__________________
FLASHER.MAP SOUNDSTAGE / CS3 / AS2

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

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

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


 


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


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