Возможно ли во Flash запустить функцию JavaScript (которая использует AJAX) на странице, которая содержит сам объект Flash? - PullRequest
0 голосов
/ 18 января 2010

Вот наша цель: на веб-сайте показать красивое меню «а-ля» iPhone во Flash, а когда мы нажмем на меню, показать часть сайта «под» меню Flash.

Два варианта:

  1. создать страницу с Вспышка меню, которое имеет iFrame и с помощью Flash откройте меню в том плавающий фрейм;
  2. создать одну страницу с div внизу, с Flash, запустите Функция JavaScript (если у вас есть идеи, пожалуйста, скажите мне!), Которая загружает через AJAX желаемое меню.

Моя цель № 1 - иметь только одну страницу. В идеале это будет встроенный объект Flash и запуск функции JavaScript.

PS: Я ненавижу iFrames. фреймы злые для меня .

Не стесняйтесь исправить мой вопрос, чтобы он был на английском!

Спасибо

Olivier

Ответы [ 3 ]

2 голосов
/ 18 января 2010

Да, это очень возможно, используя ExternalInterface в документе Flash. Эта ссылка объясняет весь процесс.

Еще больший вопрос заключается в том, что кажется, что вы используете Flash для дублирования анимации iPhone, и я представляю (если вы не делаете анимацию "Flip"), что ее можно легко воспроизвести с помощью обычной анимации JavaScript, возможно, с такой библиотекой jQuery или MooTools , чтобы помочь нормализовать различия браузера. Вы даже можете создавать 3D-анимации в Safari 4.

0 голосов
/ 18 января 2010

Альтернативой предложению Дуга является старая функция fscommand ().В вашем Flash-коде вы помещаете "fscommand ('name', 'value');"замена имени и значения любой информацией, которую вы хотите передать на веб-страницу.

На веб-странице вам нужна функция JavaScript, которая прослушивает событие FSCommand объекта Flash, например(Пример IE, см. Документы для других браузеров):

function OnFSCommand(name, value)
{
  // whatever you need to do with name & value
}

var swf = document.getElementById(name-of-my-Flash-object);
swf.attachEvent("FSCommand", OnFSCommand); // IE-only - see docs for other browsers
0 голосов
/ 18 января 2010

Более старый метод, который иногда все еще полезен, это метод getURL. Хорошая запись различий здесь: http://www.psyked.co.uk/actionscript/actionscript-geturl-vs-externalinterface-when-why.htm. Как правило, ExternalInterface предпочтительнее, но иногда вы хотите взаимодействовать со страницей с функцией, которая не определена.

Использование:

getURL("javascript:myFunction(arguments);");

Как сказал Дуг, вы можете использовать библиотеку JS для воссоздания анимации iPhone. Это даст дополнительное преимущество, так как ваше меню будет доступно для поисковых систем, если это вызывает беспокойство.

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