Ergebnis 1 bis 2 von 2
  1. #1
    Marcellus ist offline Grünschnabel
    registriert
    25-10-2006
    Ort
    GE
    Beiträge
    3

    Layer - visibility - Inhalt ändern - Laufzeitfehler

    Hallo,
    schön dass es Euch gibt! Vielleicht könnt Ihr mir helfen?
    ich habe folgendes Problem:
    Ich muss Flash- und Quicktimeinhalte auf einer Seite präsentieren.
    Da ich nicht jedesmal die Seite neu laden möchte, habe ich mir überlegt mit mehreren Layern zu arbeiten.
    Ein Layer beinhaltet die Flashnavigation, ein anderer den Flashfilm für verschiedenen Inhalt und in einen weiteren wollte ich Quicktimefilme laden.

    Zuerst hab es direkt mit der Funktion von Apple versucht. Wenn ich da ein neues "QT_WriteOBJECT_XHTML" definiert habe, hat mir die Funktion die anderen Layer weggehauen(es war nichts mehr zu sehen außer dem Quicktimefilm):
    HTML-Code:
    <html>
    	<head>
    		<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
    		<title></title>
    <!-- SWFObject embed by Geoff Stearns geoff@deconcept.com http://blog.deconcept.com/swfobject/ -->
    <script language="JavaScript" type="text/javascript" src="scripts/swfobject.js"></script>
    <script language="JavaScript" type="text/javascript" src="scripts/AC_QuickTime.js"></script>
    <script language="JavaScript1.2" type="text/javascript" src="scripts/global.js"></script>
    <link href="css/global.css" rel="stylesheet" type="text/css" media="all">
    
    <style type="text/css" media="screen"><!--
    		#qt     { visibility: hidden; position: absolute; top: 20px; left: 0px; z-index:1; width: 500px; height: 300px }
    		#flash1      { visibility: hidden; position: absolute; top: 20px; left: 0px; z-index:2; width: 500px; height: 300px }
    		#flash2      { visibility: hidden; position: absolute; top: 20px; left: 0px; z-index:3; width: 500px; height: 300px }
    		#nav   { visibility: visible; position: absolute; top: 20px; left: 500px; z-index:4; width: 200px; height: 300px }
    		#links   { visibility: visible; position: absolute; top: 400px; left: 0px; z-index:5; width: 200px; height: 300px }
    		--></style>
    		
    		<script language="JavaScript" type="text/JavaScript">
    		function initialisiereQT() {
    			var inhalt = QT_WriteOBJECT_XHTML('filme/Architektur_idee.mp4', '500', '300','','controller','false','autoplay','false','cache','false','enablejavascript','true','name','mov1');
    			document.getElementById("qt").innerHTML = inhalt;
    		}
    		
    		function PlayIT(obj) {
    			obj.Play();
    		}
    		function StopIT(obj) {
    			obj.Stop();
    		}
    		function qt() {		
    			MM_showHideLayers('qt','','show','flash1','','hide','flash2','','hide','nav','','show');
    			initialisiereQT();
    		}
    		function flash1() {
    			MM_showHideLayers('qt','','hide','flash1','','show','flash2','','hide','nav','','show');
    		}
    		function flash2() {
    			MM_showHideLayers('qt','','hide','flash1','','hide','flash2','','show','nav','','show');
    		}
    		</script>
    
    	</head>
    
    	<body bgcolor="#ffffff">
    	
    	<div id="links">
    		<a href="#" onClick="qt();">Quicktimelayer</a>
    		<a href="#" onClick="flash1();">Flashlayer1</a>
    		<a href="#" onClick="flash2();">Flashlayer2</a>
    		<a href="#" onClick="PlayIT(mov1);">Film starten</a>
    		<a href="#" onClick="StopIT(mov1);">Film stoppen</a>
    	</div>
    	<div id="qt"></div>
    	<div id="flash1"></div>
    	<div id="flash2"></div>
    	<div id="nav"></div>
    	
    	<script type="text/javascript">
    	// <![CDATA[
    		var so_nav = new SWFObject("flash/navigation.swf", "navigation", "200", "300", "6.0.0", "#000033");
    		so_nav.write("nav");
    		var so_flash1 = new SWFObject("flash/inhalt1.swf", "inhalt", "500", "300", "6.0.0", "#000033");
    		so_flash1.write("flash1");
    		var so_flash2 = new SWFObject("flash/inhalt2.swf", "inhalt2", "500", "300", "6.0.0", "#000033");
    		so_flash2.write("flash2");
    	//
    //]>
    </script>
    	</body>
    
    </html>
    Es funktioniert auch nicht alle Filme in unsichtbare Layer zu legen. Die werden auf jeden Fall geladen.
    Es gibt aber eine andere Möglichkeit. Ich positioniere einen kleinen Posterfilm in einem unsichtbaren Layer und lade dann in diesen über SetURL(...) einen neuen Film:
    HTML-Code:
    <html>
    
    	<head>
    		<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
    		<title></title>
    		<!-- SWFObject embed by Geoff Stearns geoff@deconcept.com http://blog.deconcept.com/swfobject/ -->
    		<script language="JavaScript" type="text/javascript" src="scripts/swfobject.js"></script>
    		<script language="JavaScript" type="text/javascript" src="scripts/AC_QuickTime.js"></script>
    		<script language="JavaScript1.2" type="text/javascript" src="scripts/global.js"></script>
    		<link href="css/global.css" rel="stylesheet" type="text/css" media="all">
    		<style type="text/css" media="screen"><!--
    #quicktime     { visibility: hidden; position: absolute; top: 20px; left: 0px; z-index:1; width: 500px; height: 300px }
    #flash1      { visibility: hidden; position: absolute; top: 20px; left: 0px; z-index:2; width: 500px; height: 300px }
    #flash2      { visibility: hidden; position: absolute; top: 20px; left: 0px; z-index:3; width: 500px; height: 300px }
    #nav   { visibility: visible; position: absolute; top: 20px; left: 500px; z-index:4; width: 200px; height: 300px }
    #links   { visibility: visible; position: absolute; top: 400px; left: 0px; z-index:5; width: 500px; height: 300px }
    --></style>	
    	<script language="JavaScript" type="text/JavaScript">
    	
    		var film_name
    		var qt_visibility = "hide";
    		var flash1_visibility = "hide";
    		var flash2_visibility = "hide";
    	
    		function PlayIT(anObj){
    			anObj.Play();
    		}
    		function StopIt(anObj){
    			anObj.Stop();
    		}
    		function qt(movie_name) {
    			MM_showHideLayers('quicktime','','show','flash1','','hide','flash2','','hide','nav','','show');
    			document.poster.SetURL(movie_name);
    		}
    		function flash1() {
    			MM_showHideLayers('quicktime','','hide','flash1','','show','flash2','','hide','nav','','show');
    		}
    		function flash2() {
    			MM_showHideLayers('quicktime','','hide','flash1','','hide','flash2','','show','nav','','show');
    		}
    	</script>
    	</head>
    
    	<body bgcolor="#ffffff">
    	<div id="links">
    		<p>ab hier werden die Funktionen aufgerufen</p>
    		<a href="#" onClick="qt();">Quicktimelayer - qt();</a><br />
    		<a href="#" onClick="qt('Architektur_idee.mp4');">Quicktimelayer - qt('Architektur_idee.mp4');</a><br />
    		<a href="#" onClick="flash1();">Flashlayer1 - flash1();</a><br />
    		<a href="#" onClick="flash2();">Flashlayer2 - flash2();</a><br />
    		<a href="#" onClick="PlayIT(poster);">Film starten - PlayIT(poster);</a><br />
    		<a href="#" onClick="StopIt(poster);">Film stoppen - StopIt(poster);</a><br />
    		<a href="javascript:document.poster.SetURL('filme/Architektur_idee.mp4')">javascript:filwechsel</a><br />
    	</div>
    	<div id="quicktime">
    		<embed name="poster" src="filme/platzhalter2.mov" width="500" height="300" bgcolor="'000033" autoplay="false" enablejavascript="true" type="video/quicktime" cache="true" controller="false">
    	</div>
    	<div id="flash1"></div>
    	<div id="flash2"></div>
    	<div id="nav"></div>
    	<script type="text/javascript">
    	// <![CDATA[
    		var so = new SWFObject("flash/navigation.swf", "navigation", "200", "300", "6.0.0", "#000033");
    		so.write("nav");
    		var so = new SWFObject("flash/inhalt1.swf", "inhalt", "500", "300", "6.0.0", "#000033");
    		so.write("flash1");
    		var so = new SWFObject("flash/inhalt2.swf", "inhalt2", "500", "300", "6.0.0", "#000033");
    		so.write("flash2");
    	// ]]>
    	</script>
    	</body>
    
    </html>
    Das funktioniert zwar, aber erst beim zweiten Click.
    Anscheinend geht es nicht, dass der Layer sichtbar gemacht und dem Film in ihm direkt eine Variable übergeben wird.
    Laufzeitfehler?
    Ich habe auch schon versucht die Übergabe der Variablen mit SetURL(...) in eine andere Funktion zu legen, in der ich abfrage ob der Layer schon sichtbar ist. Das hat aber nicht funktioniert, weil wohl der Code falsch war.
    Code:
    function filmwechsel() {
    if(document.getElementById("quicktime").visibility){
         document.poster.SetURL(film_name);
    }else{
         window.document.SetTimout("filmwechsel()", 300);
    }
    Da kam er nicht mehr aus der Schleife raus :whacky:
    Hoffentlich habt Ihr eine Idee?
    Bin für alles offen.

    Gruß Marcellus

  2. #2
    Marcellus ist offline Grünschnabel
    registriert
    25-10-2006
    Ort
    GE
    Beiträge
    3

    AW: Layer - visibility - Inhalt ändern - Laufzeitfehler

    hab ne Lösung gefunden! für den, den es intressiert:
    mit "onMouseDown" Layer sichtbar machen und mit "onMouseUp" Variable übergeben.

Ähnliche Themen

  1. Die etwas andere Navigation...
    Von Bitnets im Forum JavaScript
    Antworten: 1
    Letzter Beitrag: 11-02-2007, 23:58
  2. Tabelle oder Layer kleiner als Inhalt
    Von reiflo im Forum Allgemeines
    Antworten: 0
    Letzter Beitrag: 12-07-2004, 22:57
  3. div layer visibility bei onMouseOver ändern!
    Von nf4u im Forum JavaScript
    Antworten: 4
    Letzter Beitrag: 10-07-2003, 12:03
  4. Layer visibility?
    Von pxl im Forum JavaScript
    Antworten: 2
    Letzter Beitrag: 18-11-2002, 15:56
  5. layer visibility?
    Von knabberspass im Forum JavaScript
    Antworten: 2
    Letzter Beitrag: 01-10-2002, 15:51

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •