Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 24.05.2013, 20:38
advk вне форума Посмотреть профиль Отправить личное сообщение для advk Найти все сообщения от advk
  № 1  
Ответить с цитированием
advk

Регистрация: Jan 2010
Сообщений: 21
По умолчанию Проблемы с ExternalInterface

Есть некий flash ролик который работает некорректно - изменить его никак нельзя.
С помощью декомпилера локализовали проблемный участок кода:
Код AS3:
                try{
                    ExternalInterface.call("window");
                }
                catch (err:Error){
                    return false;
                }
На сколько я понимаю тут идет попытка вызова объекта window как функции и проблема в этом?
Можно ли как-то из яваскрипта решить эту проблему не изменяя флешки?


Последний раз редактировалось advk; 25.05.2013 в 01:55.
Старый 25.05.2013, 00:02
bav вне форума Посмотреть профиль Отправить личное сообщение для bav Найти все сообщения от bav
  № 2  
Ответить с цитированием
bav
 
Аватар для bav

Регистрация: Oct 2010
Сообщений: 1,049
Отправить сообщение для bav с помощью ICQ
1) Не забывайте оформлять код тегами [ AS3 ] ... [ /AS3 ]
2) Обсуждение декомпилированного кода запрещено правилами форума, за что приходят модераторы и закрывают темы.
3) Тем не менее. Вот описание класса ExternalInterface. Там есть примеры, посмотрите, если еще не смотрели. Да, параметром метода call следует указывать имя функции, определенной на странице, содержащей флешку. Не очень понятно в чем же собственно проблема.

Старый 25.05.2013, 02:02
advk вне форума Посмотреть профиль Отправить личное сообщение для advk Найти все сообщения от advk
  № 3  
Ответить с цитированием
advk

Регистрация: Jan 2010
Сообщений: 21
Примеры смотрел, мне не помогли, проблема заключается в том, что исключение происходит и происходит return false, что вызывает некорректную работу флешки в дальнейшем. window - это не функция а системный объект, который даже переопределить нельзя. Собственно два вопроса.
1.Правильно ли я понял, и на самом ли деле исключение кидается из-за того что это объект, а не функция и на самом деле во флешке допущен баг разработчиками?
2.Если это так, можно ли что-то сделать не изменяя флеш ролик?

На счет декомпиляции - тут всего пять строчек и сделана она была не для каких-то недобрых целей, а лишь для того чтобы понять почему оно не работает так как должно работать согласно документации.

Старый 25.05.2013, 03:37
tsarapkabel вне форума Посмотреть профиль Отправить личное сообщение для tsarapkabel Найти все сообщения от tsarapkabel
  № 4  
Ответить с цитированием
tsarapkabel
 
Аватар для tsarapkabel

Регистрация: Nov 2009
Адрес: в златоглавой
Сообщений: 745
Цитата:
Сообщение от advk Посмотреть сообщение
1.Правильно ли я понял...
1. Нет. Вызывается метод "window", создайте его и возвращайте в флешку true (либо необходимый параметр).
__________________
Нормально делай — нормально будет!

Старый 25.05.2013, 03:46
advk вне форума Посмотреть профиль Отправить личное сообщение для advk Найти все сообщения от advk
  № 5  
Ответить с цитированием
advk

Регистрация: Jan 2010
Сообщений: 21
А метод чего вызывается? window.window() в яваскрипте ? так его тоже не переопределить.

Старый 25.05.2013, 12:00
AlexCooper вне форума Посмотреть профиль Отправить личное сообщение для AlexCooper Найти все сообщения от AlexCooper
  № 6  
Ответить с цитированием
AlexCooper
 
Аватар для AlexCooper

Регистрация: Sep 2008
Адрес: Черкассы
Сообщений: 1,167
Записей в блоге: 1
Отправить сообщение для AlexCooper с помощью ICQ Отправить сообщение для AlexCooper с помощью Skype™
Цитата:
Сообщение от advk Посмотреть сообщение
А метод чего вызывается? window.window() в яваскрипте ? так его тоже не переопределить.
в JavaScript'e должна быть запись типа
PHP код:
var window = function() {
    
// some code
    
return true;
} 
__________________
return this...

Старый 26.05.2013, 19:05
advk вне форума Посмотреть профиль Отправить личное сообщение для advk Найти все сообщения от advk
  № 7  
Ответить с цитированием
advk

Регистрация: Jan 2010
Сообщений: 21
Цитата:
Сообщение от AlexCooper Посмотреть сообщение
в JavaScript'e должна быть запись типа
PHP код:
var window = function() {
    
// some code
    
return true;
} 
объект window нельзя переопределить, он системный

Создать новую тему Ответ Часовой пояс GMT +4, время: 01:46.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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