PDA

Просмотр полной версии : Вызов JS из флешки - нужна помощь


Sam Russ
01.04.2008, 21:08
Есть конструкция типа

on (release) {
stri=String(this._name);
k=stri.charAt(4)+stri.charAt(5);trace("clicked on pic tn "+k);
getURL("javascript:kw_switch('http://artbrathers.ru/"+k+".JPG',''); return false;");


}

которая вызывает на странице следующий скрипт

<script>
function kw_switch(i,c) {
d=document;if (d.getElementById){ d.getElementById('kwMain').src=i;
d.getElementById('kw_caption').innerHTML=unescape(c);}
}
</script>

почему то не работает. Со страницы без вопросов, из флешки не вызывается.
Пробовал и с String(ExternalInterface.call но что то видимо руки не заточены. Елси есть вариант - плз. хелп.
Заранее признателен.

2 __etc - злой ты, ну спросил человек некорректно и всё, надо сразу тему закрыть?

Sam Russ
01.04.2008, 22:18
Даже чудесная ссылка на call (ExternalInterface.call method)
ругается и говорит что всё устарело и надо писать по другому, блин, ну неужели никто не пользовался?

divinus
01.04.2008, 22:37
вариант с getURL не работает возможно из-за того, что html-ка грузится локально (адрес file:///*****.html) надо выложить на сервер, чтобы адрес был (http://*****.html) тогда должно работать, но это уже устаревший способ... лучше читайте про "ExternalInterface" ;)

Sam Russ
01.04.2008, 22:41
2divinus - я конечно тупой но не настолько. Выкладываю, не пашет. У тебя нет примера с ExternalInterface? Тот что выложен на Adobe Live Docs не работает (говорит надо поменять определения бла бла бла типа он уже устарел)

Molecula
01.04.2008, 23:05
Тут отличный пример - http://livedocs.adobe.com/flash/9.0/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00001655.html.

У вас получилось вызывать Ява функцию?

Sam Russ
01.04.2008, 23:23
2Molecula - просто ради прикола скопируй этот пример во флеш и посмотри аутпут. Я же написал вверху что смотрел его но не заработало. Я и на сайте NoxNoctis был и ещё много где, что то с флешером засада блин, недаром я сюда пару лет не заходил, всё ещё хуже стало, только флейм как всегда на месте. У нас тут 500 гуру но блин нацарапать 3 строки кода ну просто варианта нет (и можно не комментировать - я не собираюсь учиться бла бла бла - я просто раз за 5 лет открыл флеш чтобы друзьям сайт быстро написать - и опять забыть про сайтописание) уже ссылок больше написано чем был бы длиной рабочий кусок кода.
Ладно - всем спасибо. Удачи.

Molecula
01.04.2008, 23:49
Вы не поверите - но заработало!
Взял код Хелпа:
import flash.external.*;
ExternalInterface.call("sayHello", "browser");
Отрендерил, так сказать страницу, тупо открыл блокнотом, вписал поверх ява AC_FL_RunContent:
<script>
function sayHello(name) {
alert(">> Hello " + name + ".");
return ">> Hi Flash.";
}
</script>
Запустил Денвер.
Протестил, всё ок.
Будьте внимательней.

Sam Russ
02.04.2008, 12:10
Всё. Разобрался. Всем спасибо.