Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Проблемы с ExternalInterface (http://www.flasher.ru/forum/showthread.php?t=199800)

advk 24.05.2013 20:38

Проблемы с ExternalInterface
 
Есть некий flash ролик который работает некорректно - изменить его никак нельзя.
С помощью декомпилера локализовали проблемный участок кода:
Код AS3:

                try{
                    ExternalInterface.call("window");
                }
                catch (err:Error){
                    return false;
                }

На сколько я понимаю тут идет попытка вызова объекта window как функции и проблема в этом?
Можно ли как-то из яваскрипта решить эту проблему не изменяя флешки?

bav 25.05.2013 00:02

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

advk 25.05.2013 02:02

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

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

tsarapkabel 25.05.2013 03:37

Цитата:

Сообщение от advk (Сообщение 1134734)
1.Правильно ли я понял...

1. Нет. Вызывается метод "window", создайте его и возвращайте в флешку true (либо необходимый параметр).

advk 25.05.2013 03:46

А метод чего вызывается? window.window() в яваскрипте ? так его тоже не переопределить.

AlexCooper 25.05.2013 12:00

Цитата:

Сообщение от advk (Сообщение 1134739)
А метод чего вызывается? window.window() в яваскрипте ? так его тоже не переопределить.

в JavaScript'e должна быть запись типа
PHP код:

var window = function() {
    
// some code
    
return true;
} 


advk 26.05.2013 19:05

Цитата:

Сообщение от AlexCooper (Сообщение 1134756)
в JavaScript'e должна быть запись типа
PHP код:

var window = function() {
    
// some code
    
return true;
} 


объект window нельзя переопределить, он системный


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

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