Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Событие onmouseover для flash-объекта


Автор: skalex 20.1.2005, 11:18
Мне необходимо при наведении мыши на флешовый объект в браузере производить некоторые действия (например, установить значение переменной).

Я пробовал так:
Код
<div onmouseover="window.bannerId=1;><object>...</object></div>


И так:
Код
<object onmouseover="window.bannerId=1;>...</object>


Это работает в IE, но не работает в Mozilla и Opera smile smile smile . По крайней мере в Mozilla мне надо заставить это работать...

Помогите, что делать ???

Автор: Sardar 20.1.2005, 11:34
Никак, особенно трабла с Java апплетами smile Любой вставляемый обьект получает часть пространства экрана, все события возникающие на нём он и обрабатывает. Ни клики, ничего нельзя отловить. НО! Можно из флеша установить JS переменную, никогда не занимался этим, но по моему из флеша можно вызвать функцию JS.

Автор: Alx 21.1.2005, 17:55
вот. я нашео у себя как это делается:

Код

<html>
<head>
<title>JavaScript & Falsh</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<script language="JavaScript">
<!--//
var InternetExplorer = navigator.appName.indexOf("Microsoft") != -1;
function clip_DoFSCommand(command, args)
{var clipObj = InternetExplorer ? clip : document.clip;
if(command == "mouseover")
{alert(args);
}
}
if (navigator.appName && navigator.appName.indexOf("Microsoft") != -1 && navigator.userAgent.indexOf("Windows") != -1 && navigator.userAgent.indexOf("Windows 3.1") == -1)
{document.write('<script LANGUAGE=VBScript\> \n');
document.write('on error resume next \n');
document.write('Sub clip_FSCommand(ByVal command, ByVal args)\n');
document.write('  call clip_DoFSCommand(command, args)\n');
document.write('end sub\n');
document.write('</SCRIPT\> \n');
}
//-->
</script>
</head>
<body>
<OBJECT id="clip" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" WIDTH="100" HEIGHT="100" ALIGN="">
<PARAM NAME="movie" VALUE="clip.swf">
<PARAM NAME="quality" VALUE="high">
<PARAM NAME="bgcolor" VALUE="#FFFFFF">
<EMBED id="clip" src="clip.swf" quality=high bgcolor=#FFFFFF  WIDTH="100" HEIGHT="100" swLiveConnect=true NAME="clip" ALIGN="" TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer">
</EMBED>
</OBJECT>
</body>
</html>


ActionScript для объекта, при наведении на который вызывается событие:
Код

on (rollOver)
{FSCommand("mouseover", "Привет!");
}


вот и всё. Можно использовать все что угоднго, пересылать переменные, массивы и т.д. единственное что, если взаимодействие не с одним клипом, то все строки clip в вышеуказанном коде надо менять на другие.

Автор: Иль 15.6.2006, 08:19
Alx, опиши, плз, на языке логики, что делается в блоке VBScript. Ну в смысле скажи своими словами. 

Автор: Alx 15.6.2006, 12:01
ээмм.. а хрен его знает.. по ходу вызывает JS-функцию и передаёт ей параметры..
кроме того , походу это только в IE.. не помню, кароч че я тут это запостил, насколько я помню, из флеши можно вызвать JavaScript напрямую и во всех браузерах, поищи в поиске! 

Автор: Alx 15.6.2006, 12:24
посмотрел - клип работает во всех браузерах, а VBScript пишется специально для совместимости с IE. он просто вызывает ту же JS функцию, которая обрабатывает события и в других браузерах и передает ей те же параметры. почему ИЕ не может работать напрямую с ней (сразу), я не помню..) 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)