Форум 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)
-   -   Как связать flash и javascript? (http://www.flasher.ru/forum/showthread.php?t=178656)

dkart01 26.04.2012 15:30

Как связать flash и javascript?
 
Существует ли возможность вызывать JavaScript из Flash, подобно действиям onclick и onhover? Задача заключается в том, чтобы связать клик и наведение мыши на flash с изменениями на странице, включая вызов вплывающих окон.

mooncar 26.04.2012 15:33

Разумеется, это несложно, поскольку существует метод ExternalInterface.call.
Просто пишете вызов:

Код AS1/AS2:

import flash.external.*;
ExternalInterface.call('JSfunction');

Ей можно и аргументы передать:
Код AS1/AS2:

ExternalInterface.call('JSfunction', 'arg1', 'arg2');

Тестировать нужно на сервере. Либо воспользоваться этим методом.

dkart01 27.04.2012 11:16

Вложений: 1
Спасибо!

Добавлено через 5 часов 6 минут
Подскажите, почему, тестируя метод ExternalInterface.call, при использовании onPress у кнопки, её после алерта приходиться нажимать два раза, а при onRelease всегда один.

Прилагаю исходник (чтобы сработало локально на Win 7 - тыкните правой кнопкой мыши на флешку - глобальные настройки - дополнительно - настройка доверенной папки - добавить папку с флешкой и перезапустить бразуер)

Кратко говоря, похоже onPress деактивирует флешку.

mooncar 27.04.2012 16:30

1. Необходимо прикреплять исходники к сообщению.
2. По существу точно сказать не могу, возможно как-то связано с установкой и потерей флешкиным объектом на странице фокуса.

dkart01 27.04.2012 17:42

А можно ли поместить не название функции и параметры, я языковую конструкцию. Например, onclick="return hs.htmlExpand(this, { objectType: 'ajax'} )"

Добавлено через 22 минуты

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

mooncar 27.04.2012 18:09

Можно. Ну только onclick - это атрибут элемента на странице, а во флеше вы пишите просто вызов, например, так:

Код AS1/AS2:

ExternalInterface.call('function alertIt() { alert ("Можно языковую конструкцию"); }');

или даже можно function alertIt() {...} опустить...

Только, ИМХО, удобнее весь JavaScript держать на странице.

dkart01 27.04.2012 18:10

2) В Ie9 событие OnPress работает каждый клик, а вот в Opere И FF и Safari . только после двойного клика

mooncar 27.04.2012 18:15

Цитата:

Сообщение от dkart01 (Сообщение 1077298)
2) В Ie9 событие OnPress работает каждый клик, а вот в Opere И FF и Safari . только после двойного клика

Используйте onRelease.
Либо создайте другую тему, если хотите разобраться. На форуме правило: одна тема - один вопрос. Только в теме опишите все обстоятельства.

dkart01 28.04.2012 13:52

Понял. Благодарю за оперативность.


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

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