Toon posts:

[HTML] Flash semantische code

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik kom er niet uit, vele oplossingen voor het 'probleem' van de deprecated EMBED maar geen enkele oplossing (die ik heb gezien) fix het volgende probleem:

Ik heb een swf met daarin een preload (1% - 100%). Wanneer ik de volgende code gebruik
code:
1
2
3
4
5
6
7
8
9
<script type="text/javascript">RunFlash('factory.swf');</script>
<noscript>
    <object id="factory" type="application/x-shockwave-flash" data="lib/flash/factory.swf" width="100%" height="100%" VIEWASTEXT>
        <param name="movie" value="lib/flash/factory.swf">
        <param name="bgcolor" value="#333333" />
        <param name="allowScriptAccess" value="sameDomain" />
        <h3>U heeft geen (of de onjuiste) flashversie.</h3><br>Installeer daartoe de <a href="http://www.macromedia.com/go/getflashplayer" target="_blank">FLASH plugin</a>.
    </object>
</noscript>

dan werkt (alleen) in Internet Explorer het preloaden niet meer. IE wacht dan met de flash weer te geven totdat deze helemaal geladen is.
Is hier een oplossing voor? Moet er wel bijzeggen dat ik het in principe zonder javascript wil (die RunFlash is puur voor de activation)

  • Cartman!
  • Registratie: April 2000
  • Niet online
Ondanks dat je geen javascript wilt gebruiken zou ik toch SWFObject gebruiken. Dan omzeil je meteen t eolas patent en werkt het zonder gedoe in IE.

Verwijderd

Topicstarter
Cartman! schreef op woensdag 08 november 2006 @ 15:51:
Ondanks dat je geen javascript wilt gebruiken zou ik toch SWFObject gebruiken. Dan omzeil je meteen t eolas patent en werkt het zonder gedoe in IE.
Je "ondanks" zegt al genoeg :) . Het met javascript voor elkaar krijgen is geen probleem. Weet iemand hoe dit in html kan?

  • frickY
  • Registratie: Juli 2001
  • Laatst online: 13:38
Voor dergelijke problemen is alistapart.com een goede site:
HTML:
1
2
3
<object type="application/x-shockwave-flash" data="c.swf?path=movie.swf" width="400" height="300">
   <param name="movie" value="c.swf?path=movie.swf" />
</object>
The only problem with the code I had is that IE/Windows doesn’t stream the movie. It waits for the whole movie to download and then plays it. This is fine for very small movies, as the wait isn’t that noticeable. So, how about creating a very small container movie, which in the first frame loads in the real movie we want to play?
Zie voor meer uitleg http://alistapart.com/articles/flashsatay

Voor het activeren van actieve content (Flash, WMP, etc) gebruik ik onderstaande functie in de onload om alle objecten opnieuw te initialiseren;
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
if (navigator.appName == "Microsoft Internet Explorer") {       
    //Array of elements to be replaced
    var arrElements = new Array(3);
    arrElements[0] = "object";
    arrElements[1] = "embed";
    arrElements[2] = "applet";      
    //Loop over element types
    for (n = 0; n < arrElements.length; n++) {      
        //set object for brevity
        replaceObj = document.getElementsByTagName(arrElements[n]);         
        //loop over element objects returned
        for (i = 0; i < replaceObj.length; i++ ) {          
            //set parent object for brevity
            parentObj = replaceObj[i].parentNode;               
            //grab the html inside of the element before removing it from the DOM
            newHTML = parentObj.innerHTML;              
            //remove element from the DOM
            parentObj.removeChild(replaceObj[i]);               
            //stick the element right back in, but as a new object
            parentObj.innerHTML = newHTML;          
        }
    }
}

Dan kun je gewoon de object-tag gebruiken ipv een javascritp om je Flash dingen wee te geven. Indien de browser javascript ondersteunt wordt deze automatisch geactiveerd, anders moeten ze gewoon zelf even klikken.

[ Voor 86% gewijzigd door frickY op 09-11-2006 10:55 ]