problem mit variablenweitergabe an flash

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/problem_mit_variablenweitergabe_an_flash_113073/page_1 - zur Vollversion wechseln!


flocky schrieb am 26.04.2004 um 20:45

hallo

folgender code:

Code:
<HTML>
<HEAD>
<TITLE>OARSCH</TITLE>
</HEAD>
<BODY bgcolor="#FFFFFF">

<script language=javascript>
function passflash(play)
{
window.document.oarsch.SetVariable("oarsch",play);
}
</script>

<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
 codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"
 WIDTH="550" HEIGHT="400" id="oarsch" ALIGN="">
 <PARAM NAME=movie VALUE="OARSCH.swf" swLiveConnect=true>
 <PARAM NAME=quality VALUE=high>
 <PARAM NAME=bgcolor VALUE=#FFFFFF>
 <EMBED src="OARSCH.swf" quality=high bgcolor=#FFFFFF  WIDTH="550" HEIGHT="400" NAME="OARSCH" ALIGN=""
 TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer"></EMBED>
</OBJECT>

<a href="#" onMouseUp="javascript:passflash('1');" onMouseOver="passflash('2');">boano</a>

</BODY>
</HTML>

window.document.oarsch.SetVariable("oarsch",play); gibt die variable "oarsch" mit dem wert "play" an die instanz des embedded flash-movies weiter, in flash wird die variable einfach mit _root.oarsch geprüft, funzt alles im IE super aber opera macht probleme, er movie stoppt nicht wie lt. if-condition sollte.
hat jemand ideen welche restriktionen opera in der richtung hat?


Rektal schrieb am 26.04.2004 um 22:11

onmouseup="javascript jedenfalls falsch, hier gehoert kein javascript: hin .. gehoert genauso wie onmouseover.

Moeglicherweise ist document.oarsch in Opera nicht definiert? alert(document.oarsch) ? Hier gehoert document.getElementById('oarsch').<etc.etc.> hin. Eigentlich.


flocky schrieb am 26.04.2004 um 22:18

ok also javascript: weg hat keine änderung gebracht, btw: wozu schreibt man das eigentlich manchmal hin?
ob onMouseUp oder Over is eigentlich egal, es geht nur um den event.
documentgetelementbyid dachte ich auch, hat auch nix gebracht, beim altert gibts keine ausgabe.


Rektal schrieb am 26.04.2004 um 22:22

Wenns beim alert() keine Ausgabe gibt, dann ist reflektiert es quasi das unter document.oarsch nunmal nicht im Document-Tree ist. Desshalb nimmst du document.getElementById, damit findest du es.

javascript: ist ein sog. Pseudo-Handler, wurde nur in HREF-Attributen verwendet, ist ein relikt aus NS4 Zeiten, denke ich mal. Heutzutage verwendet man einfach onklick/onmouseover/onmouseout etc., das sind schon die Javascript-Handler, da rein kommt nur javascript-Code, kein javascript: Pseudo-Protokoll-Handler


flocky schrieb am 26.04.2004 um 22:28

mit getelementbyid gehts im IE genau so, in opera wieder nicht...
danke für die erklärung, also kann ich mir das in zukunft ersparen. apropos ersparen, wann muss ich die <script...> tags setzen und wann nicht?


Rektal schrieb am 27.04.2004 um 09:51

Moeglicherweise liegt das Problem daran, das Opera, warum auch immer, das Flash Object nicht einfach so scripten kann/laesst.

Wie du vielleicht selber siehst, wenn du onmouseover/onclick setzt, bearbeitest du direkt ein Event eines Objekets, d.h. du gehst davon aus, wenn der Benutzer seine Maus ueber das Element faehrt, wird dein Javascript-Code beim eintreten des Events ausgefuehrt.

Bei <script> definiertst du einfach nur Javascript code, der unter Umstaenden gar nicht gleich ausgefuehrt wird, weil du ihn spaeter brauchst.

Beispiel

Code:
<a href="url.html" onclick="window.open(this.href, 'popup', ''); return false;">Link</a>

oder

Code:
<script>
  function openPopup(href) {
    window.open(href, 'popup', '');
    return false;
  }
</script>
...
<a href="url.html" onclick="return openPopup(this.href);">Link</a>
D.h. du definiertst im Script einmal Funktionen, die du beliebig oft ausfuehren kannst, ohne sie jedesmal neu zu definieren. Ist schon praktisch wenn es komplexere Sachen sind.

Idealerweise wird im head einmal ein <script>-Tag definiert, das ein externen Javascript laedt, das alle benoetigten Funktionen definiert. So kann das *.js auch noch gecached und die HTML-Seiten werden kleiner.




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025