Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   GetVariable под Opera 5.12? (http://www.flasher.ru/forum/showthread.php?t=57711)

Alexey Venediktov 30.04.2004 12:54

GetVariable под Opera 5.12?
 
Господа, не подскажете:

под ie, nn 6.2, nn 4.76 работает, а под opera 5.12 нет.
В чем трабла?

javascript:
Код:

...
function TreeView_DoGetValue(movieVariableName) {
        var TreeViewObj = isInternetExplorer ? document.all.TreeView : document.TreeView;
        alert( TreeViewObj );
        var value = TreeViewObj.GetVariable(movieVariableName);
        alert( value );
        return value;
}
...

Вставка клипа:
Код:

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
codebase="swflash.cab#version=7,0,0,0"
id="TreeView" width="100%" height="80%" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="TreeView.swf" />
<param name="loop" value="false" />
<param name="menu" value="false" />
<param name="quality" value="high" />
<param name="scale" value="exactFit" />
<param name="bgcolor" value="#ffffff" />
<embed src="TreeView.swf" loop="false" menu="false" quality="high" scale="exactfit"
        bgcolor="#ffffff" width="100%" height="80%"
        swLiveConnect=true name="TreeView" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>

<form><input type="button" onclick="TreeView_DoGetValue('selectedNodesID');" value="test"></form>

Так вот при вызове TreeView_DoGetValue из-под Oper'ы первый alert пишет
Цитата:

[object HTMLEmbedElement]
, а до второго alert'а дело не доходит - молча выходит из процедурки после (во время?) GetVariable.

Что за проблема? Как лечить? Opera нужна уж больно :(


ЗЫ: Разумеется сам клип загружается и работает хорошо :)
"selectedNodesID" - непустая строка циферок

Alexey Venediktov 30.04.2004 13:17

Дополнение:
под Opera 7.23 - работает частично - если описать клип по иному:

Код:

<object id="TreeView" type="application/x-shockwave-flash"
  data="TreeView.swf"
  width="100%" height="80%" scale="exactfit" bgcolor="#ffffff" swLiveConnect="true"
  codebase="swflash.cab#version=7,0,0,0"
  >
  <param name="movie" value="TreeView.swf?multiselect=true&fittoscreen=true&datasource=nodes.xml"/>
  <param name="allowScriptAccess" value="sameDomain" />
  <param name="menu" value="false" />
  <param name="quality" value="high" />
  <param name="scale" value="exactFit" />
  <param name="bgcolor" value="#ffffff" />
</object>


Dimanelly 30.04.2004 13:20

Знаешь, я не сильно понял что у тебя за скрипт, но пишу по поводу самого заголовка вопроса про Оперу.
У меня была такая проблемма, не работал запрос loadVariables к php-файлу на серваке под Оперой.
Писал урл прямо в браузере типа http://сайт.ru/file.php&m1=22&m2=333
Сам браузер и пхп-файл отвечал всё чётко, т.е. возвращал правильный результат запроса, НО во флешку этот результат упорно не проходил.
Начал просить в аське всех проверять на своих операх.
Так вот что меня удивило: данная бодяга не работала только в версии 7.11 (могу наврать, точно не помню), у тех кто был на 7.03 всё отлично пахало.
Плюнул на всё, так как парился с этим багом не один день, поставил себе 7.03 и забыл про эту проблемму.
Так что может быть дело именно в глюке самой Оперы, т.к. loadVariables и GetVariable чем то похожи.
Удачи.

TTS 30.04.2004 16:18

Re: GetVariable под Opera 5.12?
 
Цитата:

Оригинал написал(а) Alexey Venediktov
Господа, не подскажете:

под ie, nn 6.2, nn 4.76 работает, а под opera 5.12 нет.

Там еще много чего не работает.

Dindin 30.04.2004 22:17

Итак. Приехали.
Экскурс в историю. Когда-то (еще в прошлом веке) компания МелкоМягкий придумала систему управления интерактивным содержимым activeX, которая была (да и по сей день остается) одной большой дырой в безопасности. И подумали лобастые ребята из микрософта - а как бы нам этот самый активикс присобачить к интернету? и придумали тэг <object>. А другие производители браузеров сказали - не нужен нам ваш дурацкий активикс, не станем мы включать тэг <oblect> в таблицы обработки HTML. И с тех пор <object> нормально не поддерживают:
1) все версии нетскейпа
2) все версии мазилы (в том числе файрбёрд и файрфокс)
3) все версии оперы
И так далее. Ну то есть не то что бы совсем не поддерживают, но не поддерживают нормально. В большинстве случаев - просто игнорируют. Зато они превосходно поддерживают тэг <embed>, который, в свою очередь не любит эксплорер.
Так что для того, что бы флэш нормально использовался всеми браузерами нужно внедрять его при помощи двух тэгов, <object> и <embed>
RTFM
Простите, чей-то я вопрос неправильно прочел. Но ссылочка хорошая -поглядите.

Nox Noctis 01.05.2004 00:34

Dindin, хорощий экскурс, только поясни что ты имел в виду под "системой управления интерактивным содержимым activeX, которая была (да и по сей день остается) одной большой дырой в безопасности"

прецеденты ? :)

я правда не знаю ниче об этом.

Dindin 01.05.2004 15:27

Яндекс выдает такое - http://www.yandex.ru/yandsearch?text...pe=www&rpt=rad

Alexey Venediktov 05.05.2004 18:50

Спасибо за разъяснение, но у меня <EMBED> есть - и в коде его видно, да и написал я что клип загружается и работает ...

НО...

GetVariable(...) не работает на Oper'ах до версии 7.xx - говорит:

Цитата:

Error:
name: TypeError
message: Attempted to call non-function: has undefined value: 'GetVariable'
Не присоветуете-ли чего?

TTS 06.05.2004 13:44

Ответ тут только один - идти обходными путями.
Например, объявить в JS переменную и из самого флеша при каждом изменении movieVariable через getURL("javascript:... менять ее значение.

PS Если я не ошибаюсь, getVariable, а не GetVariable.


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

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