Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Смена swf при наведении мыши (http://www.flasher.ru/forum/showthread.php?t=128087)

GSA85 29.07.2009 23:07

Смена swf при наведении мыши
 
Здравствуйте!
Есть на одной странице два разных flash. Первый - кнопка, при наведении мышью на которую меняется вторая анимация. Т.о. необходимо передать параметр - название второго ролика и подгрузить его.
Подскажите, пожалуйста, возможно ли так сделать и каким образом?
Спасибо!

mooncar 29.07.2009 23:21

Сделайте для управляемого ролика контейнер, куда будете загружать разные варианты swf-ок.
И с помощью класса External Interface из управляющего ролика давайте инструкции этому контейнеру подгружать то или иное содержимое.

GSA85 29.07.2009 23:59

Если вас не затруднит, можно примерчик небольшой. Я не так давно работаю с flash просто.

mooncar 30.07.2009 00:22

Примерчик кода? Готовый есть, но он вам не совсем подойдет.
Писать нужно и тестировать.
Начнем с конца цепочки.
1. Делаете флешку-контейнер. В ней пишите функцию загрузки роликов.
У функции один параметр - url ролика, который нужно загрузить. Для самой загрузки используете класс MovieClipLoader. Далее работаете с ExternalInterface, регистрируете имя функции JavaScript, которая будет вызываеть извне эту функцию загрузки с помощью метода ExternalInterface.addCallback.
2. На странице пишите JavaScript - функцию, имя которой соответствует зарегистрированному выше имени. При ее вызове она должна будет получить параметр, равный URL нового ролика. Когда она обратится к флешке (которая уже знает о возможности такого вызова), она передаст ей нужный параметр и та заработает.
3. Управляющая флешка. В ней все просто. Рисуете кнопку, по событию нажатия с помощью метода ExternalInterface.call вызываете внешнюю JavaScript функцию (которая у нас уже есть на странице), передавая ей параметр url, а та, в свою очередь, обращается к управляемой флешке, которая к этому готова, ведь в ней эта готовность прописана с помощью ExternalInterface.addCallback.
Цепочка работает, я делал нечто подобное.
Но для новичка может оказаться сложновато, много тестировать нужно, сразу без ошибок никогда не получается практически наладить такую цепочку, тут несколько слабых звеньев, и самое слабое, которому нужно уделить внимание - правильно написать JS-функцию, чтобы она правильно находила опубликованную на странице флешку-контейнер и вызывала бы внутри нее прописанную там функцию с передачей параметра.
Прочитайте о загрузке swf-ок с помощью класса MovieClipLoader и о взаимодействии с внешней средой с помощью класса ExternalInterface.

Добавлено через 3 минуты
Можно опустить 2 пункт, сделать так, чтобы нужная JS-функция генерировалась "на лету" из управляющей флешки, но при этом ее имя все-таки должно быть прописано в управляемой, в методе ExternalInterface.addCallback.

GSA85 30.07.2009 00:30

спасибо... буду пробовать


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

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