Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   external interface. Вызов функции (http://www.flasher.ru/forum/showthread.php?t=156839)

Merf 27.05.2011 15:18

external interface. Вызов функции
 
Код AS1/AS2:

import flash.external.ExternalInterface;
 
exit.onRelease = function()
{
    ExternalInterface.call("merf");
}

Код:

<script language="javascript">
    function merf() {
        alert("Hello world");
    }
</script>

Хоть убейте не могу понять почему не работает.

DaFive 27.05.2011 15:39

JS успел загрузиться до вызова функции merf ?

Merf 27.05.2011 15:45

успел,

Код:


<script language="javascript">
alert("trace");
    function merf() {
        alert("Hello world");
    }
</script>

первый алерт выскочил, функция продолжает отказыватся запускатся

mooncar 27.05.2011 16:00

Попробуйте для начала прямо во флеше:
Код AS1/AS2:

import flash.external.ExternalInterface;
 
exit.onRelease = function()
{
    ExternalInterface.call('function merf() { alert("Hello world"); }');
}

PS. А у вас выполнение скриптов из флешки в коде публикации разрешено?

Merf 27.05.2011 16:15

Html
Код:

<html>
<head>
<script language="JavaScript">
function merf(text){
alert(text);
}
</script>
</head>
<body bgcolor="#ffffff">
<object codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" id="1" width="240" height="350" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="1.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<embed src="1.swf" quality="high" bgcolor="#ffffff" width="240" height="350" name="1" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>

</body>
</html>

в флеше одна кнопка(exit) к ней код:
Код AS1/AS2:

import flash.external.ExternalInterface;
 
exit.onRelease = function()
{
ExternalInterface.call('function merf() { alert("Hello world"); }');
}

Добавлено через 13 минут
нету алерта и хоть убейся. Либо я где-то очень сильно туплю либо это мистика страшная. Помогите пожалуйста

Merf 27.05.2011 16:37

Вложений: 1
Вот исходник, может поможет

Hauts 27.05.2011 17:02

Протестируйте не локально :)

Merf 27.05.2011 17:10

Походу таки мистика, переписал код на АS 3
Код AS3:

exit.addEventListener("click", function(){ExternalInterface.call('merf');});

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

Добавлено через 3 минуты
Код AS3:

        public function jsDisplay():void
                        {
                                if (ExternalInterface.available)
                                {
                                        ExternalInterface.call("displ", par);
                                }
                        }

Во флексе работает, но мне не надо флекс.

Добавлено через 24 минуты
кароче сделал кнопку вызова функции поверх флеша и забил, достало. Спасибо всем за помощь


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

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