Просмотр полной версии : external interface. Вызов функции
import flash.external.ExternalInterface;
exit.onRelease = function()
{
ExternalInterface.call("merf");
}
<script language="javascript">
function merf() {
alert("Hello world");
}
</script>
Хоть убейте не могу понять почему не работает.
JS успел загрузиться до вызова функции merf ?
успел,
<script language="javascript">
alert("trace");
function merf() {
alert("Hello world");
}
</script>первый алерт выскочил, функция продолжает отказыватся запускатся
Попробуйте для начала прямо во флеше:
import flash.external.ExternalInterface;
exit.onRelease = function()
{
ExternalInterface.call('function merf() { alert("Hello world"); }');
}
PS. А у вас выполнение скриптов из флешки в коде публикации разрешено?
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) к ней код:
import flash.external.ExternalInterface;
exit.onRelease = function()
{
ExternalInterface.call('function merf() { alert("Hello world"); }');
}
Добавлено через 13 минут
нету алерта и хоть убейся. Либо я где-то очень сильно туплю либо это мистика страшная. Помогите пожалуйста
Вот исходник, может поможет
Протестируйте не локально :)
Походу таки мистика, переписал код на АS 3
exit.addEventListener("click", function(){ExternalInterface.call('merf');});
таже фигня, закидал на сервак не видит функции и хоть ты тресни, я уже флешку переписал вдоль и впоперек, заново писал. Нифига не помагает
Добавлено через 3 минуты
public function jsDisplay():void
{
if (ExternalInterface.available)
{
ExternalInterface.call("displ", par);
}
}
Во флексе работает, но мне не надо флекс.
Добавлено через 24 минуты
кароче сделал кнопку вызова функции поверх флеша и забил, достало. Спасибо всем за помощь
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.