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

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

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

Регистрация: Jul 2010
Сообщений: 31
Question Управление загруженным клипом

Здравствуйте!
Возникла задача управления загруженным, с помощью функции loadMovie(),внешним swf клипом. А именно установка свойств прозрачности и цвета для отдельных элементов библиотеки внешнего ролика.
Или ,может быть ,пересылкой параметров из исходного ролика во внешний ,вследствии обработки которых в загруженном клипе можно было устанавливать значения цвета и прозрачности для заданных элементов.

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

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Для ваших целей надо использовать не функцию loadMovie(), а класс MovieClipLoader, иначе вы не сможете корректно произвести необходимые действия над загруженным: нужно отследить момент гарантированной загрузки с помощью метода этого класса onLoadInit (Фактор асинхронности работы AS очень сильно выражен, когда ролик размещен на сайте).
Открывайте хелп и смотрите пример.
И второе - в библиотеке загруженного ролика вы поменять ничего не сможете, ровно как и в любой библиотеке ролика после компиляции.
Произвести необходимые изменения возможно только с уже добавленными (вручную либо программно) на сцену символами.


Последний раз редактировалось mooncar; 04.07.2010 в 11:55.
Старый 04.07.2010, 16:31
wolfgang вне форума Посмотреть профиль Отправить личное сообщение для wolfgang Найти все сообщения от wolfgang
  № 3  
Ответить с цитированием
wolfgang

Регистрация: Jul 2010
Сообщений: 31
Предположим я загружаю ролик таким образом:
Код AS1/AS2:
var mcLoader:MovieClipLoader = new MovieClipLoader();
 
mcLoader.loadClip("clip.swf", _root.clip);
В рабочей области внешнего загруженного клипа есть символ simbol
Можно ли как нибудь изменить цвет этого символа,а не всего ролика в целом?
Вот это не работает:
Код AS1/AS2:
 
Fill1=new Color(_root.clip.simbol);
Fill1.setRGB(0xFF0000);

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

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Цитата:
Сообщение от wolfgang Посмотреть сообщение
Вот это не работает:
Вы пропустили мои слова о onLoadInit и асинхронности. Либо невнимательно смотрели примеры.
Код AS1/AS2:
var mcLoader:MovieClipLoader = new MovieClipLoader();
var listener:Object = new Object();
 
listener.onLoadInit = function  (target_mc:MovieClip) 
{
	Fill1 = new Color(target_mc.simbol); //target_mс  - это и есть  _root.clip  
	Fill1.setRGB(0xFF0000);
};
 
mcLoader.loadClip("clip.swf", _root.clip);
Писать строки одна под другой - это не есть гарантия, что они выполнятся. Нужно дождаться загрузки, это и позволяет обработчик события onLoadInit.


Последний раз редактировалось mooncar; 04.07.2010 в 18:22.
Старый 04.07.2010, 18:46
wolfgang вне форума Посмотреть профиль Отправить личное сообщение для wolfgang Найти все сообщения от wolfgang
  № 5  
Ответить с цитированием
wolfgang

Регистрация: Jul 2010
Сообщений: 31
Спасибо.

Старый 23.08.2010, 20:54
wolfgang вне форума Посмотреть профиль Отправить личное сообщение для wolfgang Найти все сообщения от wolfgang
  № 6  
Ответить с цитированием
wolfgang

Регистрация: Jul 2010
Сообщений: 31
Ситуация такая. клип A находится на сервере.В него грузится клип B. Запускаю из среды разработки. Клип B подгружается в A и нормально меняются цвета у символов (как задано в функции).Но если я клип A загружаю на сервер - клип B грузится в A но никаких изменений над символами загруженного клипа не происходит.
Проверял- все процедуры и функции вызываются,но события:
Код AS1/AS2:
Fill1 = new Color(target_mc.simbol);
Fill1.setRGB(0xFF0000);
не меняют цвет символа загруженного клипа

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

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

Старый 23.08.2010, 22:08
wolfgang вне форума Посмотреть профиль Отправить личное сообщение для wolfgang Найти все сообщения от wolfgang
  № 8  
Ответить с цитированием
wolfgang

Регистрация: Jul 2010
Сообщений: 31
Да.Оба swf файла лежат на одном сервере.И один клип загружается в другой при помощи MovieClipLoader.
фрагмент ClipA.swf:
Код AS1/AS2:
var mcLoader:MovieClipLoader = new MovieClipLoader();
var listener:Object = new Object();
listener.onLoadInit = function  (target_mc:MovieClip) 
	{
 
		Fill = new Color(target_mc.simbol1);//заливка цветом
		Fill.setRGB("0x00FF00");//не работает на сервере
 
	};
 
	mcLoader.addListener(listener);
mcLoader.loadClip("http://www.mysite.ru/flash/clipB.swf",all);
Клип B -тот который я подгружая в клип A.
Клип B -находится на сервере.

Клип A -основной код,в него загружается клип A.
Клип A -находится на сервере,и на локальной машине(т.е. тестирую сначала в среде разработке, потом на сервере).

Клип A сначала запускаю прям из среды разработки Ctrl+Alt+Enter.Все работает нормально:Клип B загружается в Клип A и символ КлипB.simbol1 меняет свой цвет на зеленый.

Далее публикую клип A и загружаю на сервер swf файл.
Запускаю клип A(контейнер для загрузки клипа B) на сервере:
Результат:
клип B подгружается,НО simbol1 не закрашивается заданным "0x00FF00" цветом.


Последний раз редактировалось wolfgang; 23.08.2010 в 22:10.
Старый 23.08.2010, 22:13
rainbowrussia вне форума Посмотреть профиль Отправить личное сообщение для rainbowrussia Найти все сообщения от rainbowrussia
  № 9  
Ответить с цитированием
rainbowrussia
 
Аватар для rainbowrussia

Регистрация: Feb 2008
Сообщений: 560
Замените абсолютный путь на относительный, а то может вы первую флешку открывается с сайта "mysite.ru", а вторую с "www.mysite.ru".

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

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

Помнится, с использованием битмапы, загруженной с другого сервера, обнаружились сходные проблемы.

А в среде разработки много чего работает, что отказывается работать при выкладывании на хост. Это связано с секьюрными моментами флеша.

UPD:
1. Попробуйте поставить именно относительный путь в load, например относительно корня сайта:
Код AS1/AS2:
mcLoader.loadClip('/flash/clipB.swf', all);
Так должно заработать.
Лучше использовать именно этот вариант, потому что нет гарантии, что у юзера в адресной строке будет именно тот адрес домена, который стоит в load.

2. И наконец, в клипе B можно прописать строку
Код AS1/AS2:
System.security.allowDomain('mysite.ru');
Тогда и с www заработает, и без, вообще с любого домена 3-го уровня.
__________________
Идите первым!


Последний раз редактировалось mooncar; 23.08.2010 в 23:06.
Создать новую тему Ответ Часовой пояс GMT +4, время: 20:36.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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