Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Взаимодействие со слоями. (https://javascript.ru/forum/misc/1350-vzaimodejjstvie-so-sloyami.html)

Воитель 28.06.2008 10:26

Взаимодействие со слоями.
 
На маленькой тестовой страничке создал один слой и JavaScript к нему, который взаимодействуя с флэшкой что внутри слоя движет его.

Но проблема состоит в том, что когда я этот скрипт переношу в НЕ тестовую страницу, в которой несколько слоёв(в них тоже находятся флэшки, но обычные мувики) скрипт не работает. После долгих тыканий я установил что при удвлении других слоёв скрипт начинает работать. В итоге я установил что другие слои почему то мешают.
Но почему???

Андрей Параничев 28.06.2008 13:56

Без хоть какого-то листинга кода вам тут никто не сможет помочь.

Воитель 28.06.2008 21:57

Вот код что маленький: (некоторые переменные беруться из флэш и ей же запускается скипт)
Код:

<html>
<head>
<title>JavaScript. Позиционирование.</title>
<script language="JavaScript">
<!--
  var gjapox=0;
  var gjapoy=0;
  var tekkoorx=0;
  var tekkoory=0;
  function japapilon(japox, japoy) {
        gjapox=japox-50;
        gjapoy=japoy-50;
      tekst=gjapox+" "+gjapoy;
      polet() }


      function polet() {
      if (gjapox<gjapoy) { if (tekkoory<gjapoy) {
      tekkoory+=1;
      tekkoorx=tekkoory*(gjapox/gjapoy);
      tekkoorx=Math.round(tekkoorx);
      }
      else {
      getFlashMovieObject('movie').SetVariable('/:ANY_VAR', 'Заработало :)');
      }}
     
if (gjapox>gjapoy) { if (tekkoorx<gjapox) {
      tekkoorx+=1;
      tekkoory=tekkoorx*(gjapoy/gjapox);
      tekkoory=Math.round(tekkoory);
      }
      else {
      getFlashMovieObject('movie').SetVariable('/:ANY_VAR', 'Заработало :)');
      }}
     
tekstt=tekkoorx+" "+tekkoory+"/"+tekst;
      document.getElementById('bibon').value = tekstt;
      if (navigator.appName == "Netscape")
{ document.move.left = tekkoorx +'px'
  document.move.top = tekkoory +'px' }
else { document.all.move.style.left= tekkoorx +'px'
      document.all.move.style.top = tekkoory +'px' }
      setTimeout(arguments.callee, 2);
      }
      function getFlashMovieObject(movieName)
{
 if (window.document[movieName])
 {
    return window.document[movieName];
 }
 if (navigator.appName.indexOf("Microsoft Internet")==-1)
 {
  if (document.embeds && document.embeds[movieName])
    return document.embeds[movieName];
 }
 else // if (navigator.appName.indexOf("Microsoft Internet")!=-1)
 {
  return document.getElementById(movieName);
 }
}
-->
</script>
</head>
<body>
 
<div id="move" style="position:absolute; left:0px; top:0px; width:100px; height: 100;">
  <p>
    <object id="movie" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="100" height="100" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="primer.swf" />
<param name="FlashVars" value="maxkoor=150">
<param name="quality" value="high" />
<embed src="primer.swf" name="movie" quality="high" FlashVars="maxkoor=150" width="100" height="100" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
  </p>
</div>
<form name="form1" method="post" action="">
  <textarea name="bibon" id="bibon"></textarea>
</form>
</body>
</html>

А вот таким способом я ставил слои в большую страницу: (это один из 5 слоёв)
Код:

<div id="krona">
  <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="1003" height="392">
    <param name="movie" value="flashik/Soedinenie.swf" />
    <param name="quality" value="high" />
  <param name="WMode" value="Opaque">
    <embed src="flashik/Soedinenie.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="1003" height="392"></embed>
  </object>
</div>



Часовой пояс GMT +3, время: 04:41.