![]() |
GetVariable не работает под FireFox
Пишу расширение, которое должно взаимодействовать с флешками. Столкнулся с тем, что GetVariable всегда возвращает null. При этом SetVariable работает замечательно.
Попробавал читать переменные не из расширения, а просто из JS на страничке - теже грабли. Под IE все работает нормально, но мне-то нужен FF... |
Не должно работать ни там и ни там если речь идет о АС3. Смотрите справку по ExternalInterface.
|
Мне нужен доступ к произвольной флешке, содержимое которой я менять не могу, поэтому ExternalInterface - мимо меня.
|
А код можно посмотреть? так у меня все работает как часы.
|
в расширении:
Код:
var swf = gBrowser.selectedBrowser.contentDocument.getElementById('swf').wrappedJSObject;Код:
<img src="smile.gif" width="41" height="32" onclick="alert(document.getElementById('swf').GetVariable("_root"))" />Flash 10.0.12.36 swf - точно флешовый объект, ибо SetVariable работает без проблем, а в IE и GetVariable работает. |
_root нет в AS3.
|
Под IE код работает, во программе, которая использует флешку - работает, ибо там используется IE в качестве контейнера. А под FireFox не работает.
|
Вопрос в другом, как вы собирались до переменной добираться в АС3? Где вы ее в АС3 так сможете объявить, чтобы GetVariable смог ее увидеть?
|
Я так поковырялся и у себя и по интернетам, в общем вопрос возможно не к AS как таковомму, сколько к флешовому объекту, так как не работает получение переменных и во флешках с AS2. На сайте адоба есть пара древних тем с такой же проблемой (GetVariable возвращает null под FireFox), но к сожаленю без ответа...
http://www.adobe.com/cfusion/webforu...d1=GetVariable |
Вложений: 1
Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">Флешка простейшая - на ней текстовое поле, содержимое которого собираюсь менять/читать. p.s. Возможно эту тем надо перенсти в другую ветку.. например в HTML/DHTML/CSS/JS/VB |
Есть еще такой вариант: SWFObject не поддерживает этот метод. Вы используете SWFObject 2, может стоит попробовать первую версию? Или просто ембед? Все таки вторая версия кроме того, что немного бажная в других отношениях рассчитана больше на АС3...
Ну и естесственно, поставить FireBug в ФФ. Почемуто мне кажется, что ошибка именно в SWFObjecte... |
SWFObject тут не причем, я пробовал и стандартную обертку адоба - тот же результат. Firebug у меня стоит (кудаж без него). Флешовый объект берется правильно, ведь SetVariable работает, а вот GetVariable - нет/
|
Откуда вы знаете, что SetVariable работает?
В любом случае, работа с SetVariable/GetVariable с AS3-роликами вам не светит. Ответ вам уже дали: ExternalInterface. |
__etc вы бы пример посмотрели сначала, а потом уже спрашивали "Откуда вы знаете, что SetVariable работает?"
|
у вас fla компилируется под AS2. А вам нужно и As2 и As3, как я понял. SetVariable/GetVariable c AS3 не работает, дальнейшее разбирательство, почему в одном броузере работает, а в другом нет бесмысленно. Идите в направлении ExternalInterface и решайте уже его глюки.
|
Цитата:
|
__etc
Как я уже говорил ранее, скорее всего вопрос задан не там и топик надо перенести в обсуждение HTML/DHTML/CSS/JS/VB, так как проблема не в версии AS, а во взаимодействии между FF и flash. |
В Safari тоже не работает, кстати.
Так и быть, переезжаем, но я бы не рекомендовал вам продолжать разбираться с древним API флешевого плагина, а использовать нормальный EI. |
вместо GetVariable проще заюзать воркэраунд:
javascript: Код:
var myVar = null;Код AS1/AS2:
|
Нет возможности менять флешку. Интерфейс работы с ней есть, через GetVariable/SetVariable.
Если бы мог менять флешку - сделал бы через EI и не морочил себе и другим голову... |
Цитата:
|
KidsKilla, простите, вы тему читали, приложеный файлик смотрели? Сказано же было, и не раз, что под IE все работает, под осталные браузеры работает только SetVariable, причем для любой флешки.
|
Вместо выпячивания гонора (кстати, устное предупреждение за хамство) стоило лучше поискать:
http://kb.adobe.com/selfservice/view...nalId=tn_14159 FF 2 для примера Цитата:
|
Во-первых не вижу где вы нашли хамство, а во вторых там и для IE написано тоже самое, и не смотря на это, в IE GetVariable замечательно работает.
|
Цитата:
Во всяком случае этот GetVariable писан для 2й-5й версии флеша. Работоспособность его никто не гарантирует и разбираться в этом считаю пустой тратой времени. |
KidsKilla
IE какой? Под 6-м замечательно работает. Для меня, к сожаленю, это единственный вариант... |
6й. единственный нерабочий вариант.
чем не устраивает вариант с оберткой то? в ней можно реализовать нормальный интерфейс работы с жс, а коммуникации флеш-флеш банальны. |
KidsKilla: под оберткой ты имеешь ввиду, что делается флешка, которую учат общаться с JS, а она, в свою очередь, загружает уже в себя флешку-контент и передает ей сообщения от JS? А в таком варианте не будет проблемой настроить связь с AS2 флешкой, если нет возможности её переделать?
|
дык и обёртка в ас2...
|
| Часовой пояс GMT +4, время: 15:35. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.