Показать сообщение отдельно
Старый 20.02.2008, 13:22
Demetros вне форума Посмотреть профиль Отправить личное сообщение для Demetros Найти все сообщения от Demetros
  № 1  
Ответить с цитированием
Demetros

Регистрация: Feb 2008
Сообщений: 2
По умолчанию ExternalInterface.call и getURL

Доброго дня всем.

У меня собственно есть два вопроса.
1. Для работы ExternalInterface нужна поддержка браузером ActiveX или NPRuntime API. Правильно ли я понимаю, что у пользователя может быть установлен плеер версии >=8, но браузер пользователя может не поддерживать ExternalInterface?
2. Если ответ на первый вопрос - "ДА", то второй вопрос связан с вызовом JavaScript функций из флэша.
Для вызова ява-фунции насколько я понимаю нужно использовать конструкцию
Код:
if(ExternalInterface.available) {
   ExternalInterface.call('myfunc', par1, par2, ...);
}
else {
   getURL("javascript:myfunc('"+par1+"','"+par2+"','"+...+"')");
}
Это неудобно, поскольку вызовы в коде встречаются неоднократно, и каждый раз приходится вставлять эту проверку if-else.
Хочется написать отдельную функцию с переменным числом аргументов, которая будет прозрачно вызывать JS-функцию, вроде этой:
Код:
function callJS() {
   var args:Array=arguments;
   var fName = args[0];
   if(ExternalInterface.available) {
     ExternalInterface.call(fName, ...);
   }
   else {
     getURL("javascript:"+fName+"("+args.slice(1).toString()+")");
   }
}
Как передать все остальные аргументы в первом случае (там, где стоят три точки)?