|
|
|||||
Регистрация: Jul 2010
Сообщений: 31
|
Управление загруженным клипом
Здравствуйте!
Возникла задача управления загруженным, с помощью функции loadMovie(),внешним swf клипом. А именно установка свойств прозрачности и цвета для отдельных элементов библиотеки внешнего ролика. Или ,может быть ,пересылкой параметров из исходного ролика во внешний ,вследствии обработки которых в загруженном клипе можно было устанавливать значения цвета и прозрачности для заданных элементов. |
|
|||||
Модрон-ветеринар
|
Для ваших целей надо использовать не функцию loadMovie(), а класс MovieClipLoader, иначе вы не сможете корректно произвести необходимые действия над загруженным: нужно отследить момент гарантированной загрузки с помощью метода этого класса onLoadInit (Фактор асинхронности работы AS очень сильно выражен, когда ролик размещен на сайте).
Открывайте хелп и смотрите пример. И второе - в библиотеке загруженного ролика вы поменять ничего не сможете, ровно как и в любой библиотеке ролика после компиляции. Произвести необходимые изменения возможно только с уже добавленными (вручную либо программно) на сцену символами. Последний раз редактировалось mooncar; 04.07.2010 в 11:55. |
|
|||||
Регистрация: Jul 2010
Сообщений: 31
|
Предположим я загружаю ролик таким образом:
var mcLoader:MovieClipLoader = new MovieClipLoader(); mcLoader.loadClip("clip.swf", _root.clip); Можно ли как нибудь изменить цвет этого символа,а не всего ролика в целом? Вот это не работает: |
|
|||||
Модрон-ветеринар
|
Вы пропустили мои слова о onLoadInit и асинхронности. Либо невнимательно смотрели примеры.
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); Последний раз редактировалось mooncar; 04.07.2010 в 18:22. |
|
|||||
Регистрация: Jul 2010
Сообщений: 31
|
Спасибо.
|
|
|||||
Регистрация: Jul 2010
Сообщений: 31
|
Ситуация такая. клип A находится на сервере.В него грузится клип B. Запускаю из среды разработки. Клип B подгружается в A и нормально меняются цвета у символов (как задано в функции).Но если я клип A загружаю на сервер - клип B грузится в A но никаких изменений над символами загруженного клипа не происходит.
Проверял- все процедуры и функции вызываются,но события: не меняют цвет символа загруженного клипа |
|
|||||
Модрон-ветеринар
|
У вас обе swf-ки лежат на одном сервере, одна грузит другую и функция, принадлежащая первой, не меняет цвет символа в загруженной, правильно я понял? С А и В не очень понятно объяснили.
__________________
Идите первым! |
|
|||||
Регистрация: Jul 2010
Сообщений: 31
|
Да.Оба swf файла лежат на одном сервере.И один клип загружается в другой при помощи MovieClipLoader.
фрагмент ClipA.swf: 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 -основной код,в него загружается клип A. Клип A -находится на сервере,и на локальной машине(т.е. тестирую сначала в среде разработке, потом на сервере). Клип A сначала запускаю прям из среды разработки Ctrl+Alt+Enter.Все работает нормально:Клип B загружается в Клип A и символ КлипB.simbol1 меняет свой цвет на зеленый. Далее публикую клип A и загружаю на сервер swf файл. Запускаю клип A(контейнер для загрузки клипа B) на сервере: Результат: клип B подгружается,НО simbol1 не закрашивается заданным "0x00FF00" цветом. Последний раз редактировалось wolfgang; 23.08.2010 в 22:10. |
|
|||||
Регистрация: Feb 2008
Сообщений: 560
|
Замените абсолютный путь на относительный, а то может вы первую флешку открывается с сайта "mysite.ru", а вторую с "www.mysite.ru".
|
|
|||||
Модрон-ветеринар
|
Да, сравните адреса - тот, с которого загружается основной ролик, и путь в load для загружаемого. Сделайте так, чтобы адреса совпадали. Относительность пути тут как бы не при чем, просто флешка склонна считать домен с алиасом с "www" другим сервером.
Помнится, с использованием битмапы, загруженной с другого сервера, обнаружились сходные проблемы. А в среде разработки много чего работает, что отказывается работать при выкладывании на хост. Это связано с секьюрными моментами флеша. UPD: 1. Попробуйте поставить именно относительный путь в load, например относительно корня сайта: Так должно заработать. Лучше использовать именно этот вариант, потому что нет гарантии, что у юзера в адресной строке будет именно тот адрес домена, который стоит в load. 2. И наконец, в клипе B можно прописать строку Тогда и с www заработает, и без, вообще с любого домена 3-го уровня.
__________________
Идите первым! Последний раз редактировалось mooncar; 23.08.2010 в 23:06. |
Часовой пояс GMT +4, время: 20:36. |
|
« Предыдущая тема | Следующая тема » |
|
|