Flash mit JavaScript "manipulieren"

Biergamasda

Erfahrenes Mitglied
Hi Leute

Bin mir nicht sicher, ob das besser hier oder ins Flash Board gehört, aber is ja egal - wenn ich falsch bin bitte verschieben ;)

Ich bin zwar noch kompletter Flash Neuling, habe mich jedoch in den letzten paar tagen mal ein wenig schlau gemacht, und bin darauf gestoßen, dass man AS Variablen mit JS ändern kann - schön und gut, hab mich gleich mal rangesetzt das zu implementieren.

Meine Ausgangsbasis ist das pageFlip in der Version 22, da ich dies auf die Bedürfnisse meines Kunden anpassen sollte.

Hab mich jetzt mal rangesetzt und ne kleine JS funktion geschrieben

Javascript:
function blaettern() {
        movie = findeFlash("pageFlip");
        if (movie) {
            movie.SetVariable("blaettern","4");
        }
    }

findeFlash() sieht wie folgt aus (stammt von SelfHTML)
Javascript:
function findeFlash (flash) {
    if (document.all) {
      if (document.all[flash]) {
        return document.all[flash];
      }
      if (window.opera) {
        var movie = eval(window.document + flash);
        if (movie.SetVariable) {
          return movie;
        }
      }
      return;
    }
    if(document.layers) {
      if(document.embeds) {
        var movie = document.embeds[flash];
        if (movie.SetVariable) {
          return movie;
        }
      }
      return;
    }
    if (!document.getElementById) {
      return;
    }
    var movie = document.getElementById(flash);
    if (movie.SetVariable) {
      return movie;
    }
    var movies = movie.getElementsByTagName('embed');
    if (!movies || !movies.length) {
      return;
    }
    movie = movies[0];
    if (movie.SetVariable) {
      return movie;
    }
    return;
  }

Und in der Flash datei habe ich mal bissl rumgesucht wo ich onenterframe am besten einbaue - bis ich ein bereits vorhandenes onenterframe einfach etwas abgeändert habe :)

sieht jetzt wie folgt aus

Code:
//var blaettern = undefined;
//var merker = undefined;
//var flag = false;

onEnterFrame = function() {
//    if (flag == false) {
        LB = getBytesLoaded();
        TB = getBytesTotal();
        PC = (LB/TB)*100;
    
        loaderbar.setbar(PC);
    
        if(TB>4 && PC == 100) {
            gotoAndPlay("initialize")
//            flag = true;  ursprünglich wurde hier onEnterFrame gelöscht
        }
//    } else {
//        if (_global.merker != _global.blaettern) {
//            _global.merker = _global.blaettern;
//            gotoPage(_global.blaettern,false);
//        }
    }    
}


Die kommentierten Zeilen wurden von mir eingefügt.

Wenn ich nun die JS funktion aufrufe erhalte ich keine Fehler oder ähnliches, lokal bekomme ich die Exception, dass mein Flash Player den Zugriff durch JS geblockt hat. Daraufhin hab ich das mal hochgeladen (biergamasta.bi.ohost.de/Bergwirt/) und ausprobiert. Keine Fehler, jedoch tut sich nichts. Nun würde ich gerne rausfinden, ob die Variable überhaupt geändert wird, nur leider habe ich keine Ahnung wie. Währe nett wenn mir da mal jemand bissl helfen könnte ;)

MFG Masda

PS:
die Einbettung des Flash Films
HTML:
<object id="pageFlip" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="600" height="800" 
                codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab" style="margin: 0;">
                <param name="movie" value="./swf/pageFlip.swf" />
                <param name="quality" value="high" />
                <param name="allowScriptAccess" value="sameDomain" />
                <param name="FlashVars" value="movieid=movie" />
                <param name="swLiveConnect" value="true">
                <embed src="swf/pageFlip.swf" FlashVars="movieid=movie" quality="high" bgcolor="black" swliveconnect="true"
                    width="600" height="800" name="pageFlip" align="middle" 
                    play="true" loop="false" allowScriptAcccess="sameDomain" 
                    type="application/x-shockwave-flash" style="margin: 0;"
                    pluginspace="http://www.macromedia.com/go/getflashplayer">
                </embed>
            </object>
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück