Zurück   Flashforum > Flash > ActionScript > ActionScript 2

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 06-03-2008, 12:42   #1 (permalink)
********
 
Benutzerbild von *dakini*
 
Registriert seit: Sep 2004
Ort: nrw deutschland
Beiträge: 43
Tutorial: swfobject + swfadress mit as2

diese zusammenstellung erklärt den einsatz von swfobject + swfadress.

http://blog.deconcept.com/swfobject/
http://www.powerflasher.de/sites/blog/swfobject/
swfobject erkennt ob und welchen player der user hat und bietet anschließend den aktuellen flashplayer an. das skript ist außerdem suchmaschinenoptimiert – es ermöglicht die google indexierung.

http://asual.com/swfaddress/
swfadress arbeitet mit deep linking. es simuliert urls und ermöglicht somit die navigation im browser über die „vor“ und „zurück“ pfeile.

1. ihr müsst den folgenden code in eure index.html oder default.html datei einfügen:

HTML-Code:
<script type="text/javascript" src="swfobject.js"></script>
                
<div id="flashcontent">
  This text is replaced by the Flash movie.
</div>
<script type="text/javascript">
var so = new SWFObject("film.swf", "film", "550", "400", "8", "#FFFFFF");
           so.useExpressInstall('expressinstall.swf');
           so.write("flashcontent");
</script>
- film.swf ist eure datei. wenn die swf in einem anderen ordner liegen sollte, muss zum beispiel an dieser stelle /ordnername/film.swf eingetragen werden.
- film ist die ID des objects
- 550 ist die pixelbreite des films
- 400 ist die höhe
- 8 ist die benötigte player-version
- #FFFFFF ist die hintergrundfarbe des films

wenn ihr swfobject heruntergeladen habt, könnt ihr die beispiel html dateien in eurem html programm öffnen und einändern. einfach den namen eurer datei einfügen, höhe + breite und farbe einändern.
WICHTIG: ihr müsst daran denken die datei swfobject.js und expressinstall.swf in eurem html programm in den gleichen ordner zu legen wie eure swf + die dateien uploaden! Ansonsten könnt ihr mit der pfadangabe arbeiten. (/ordnername/swfobject.js - oder - /ordnername/expressinstall.swf)

2. nun geht es an swfadress. dazu müsst ihr die dateien auf asual.com herunterladen, um swfaddress in euren code zu integrieren. hierzu fügt ihr eine weitere codezeile ein.
unter die bereits bestehende zeile:
<script type="text/javascript" src="swfobject.js"></script>
schreibt ihr:
<script type="text/javascript" src="swfaddress.js"></script>

WICHTIG: hier müsst ihr daran denken die dateien swfaddress.js und AC_RunActiveContent.js in eurem html programm in den gleichen ordner zu legen wie eure swf + die dateien uploaden! Ansonsten könnt ihr wieder mit der pfadangabe arbeiten. (/ordnername/swfadress.js etc.)

alles zusammen kann dann so aussehen:

HTML-Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" dir="ltr">

<head>

<meta name="verify-v1" content="oaQvZLzAA7+YQ36+078wPGluEOCKYQX+cSUeYuBJPO8=" />

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="description" content="bla, bla">
<meta name="keywords" content="bla, bla">

<meta name="revisit-after" content="1 month">
<meta name="author" content="blub">
<meta name="page-topic" content="blub">
<meta http-equiv="expires" content="0">
<meta http-equiv="language" content="de">
<meta name="robots" content="index, follow">

<title>eurer titel</title>
        
        <script type="text/javascript" src="swfobject.js"></script>
        <script type="text/javascript" src="swfaddress.js"></script>
				
        <style type="text/css">
            /* hide from ie on mac \*/
            html {
                height: 100%;
                overflow: hidden;
            }
            <!-- hier kommt die zentrierung-->
            #flashcontent {
              position: absolute;
                    left: 50%;
                    top: 50%;
                    width: 550px;
                    height: 400px;
                    margin-left: -500px;
                    margin-top: -328px;
            }
            /* end hide */
            body {
                height: 100%;
                margin: 0;
                padding: 0;
                background-color: #FFFFFF;
                font: 76% Arial, sans-serif;
            }
        </style>
				
</head>
<body>

<div id="flashcontent">
<strong>You need to upgrade your Flash Player</strong>
This is replaced by the Flash content. 
Place your alternate content here and users without the Flash plugin or with 
Javascript turned off will see this. Content here allows you to leave out <code>noscript</code> 
tags. Include a link to <a href="fullpage.html?detectflash=false">bypass the detection</a> if you wish.
</div>

        <script type="text/javascript">
        // <![CDATA[
            var so = new SWFObject('film.swf', 'film', '550', '400', '8', '#FFFFFF');
            so.useExpressInstall('expressinstall.swf');
            so.addParam('menu', 'false');            
            so.write('flashcontent');
        // ]]>
        </script>
</body>
</html>
3. nun zu eurer swf. in eurem heruntergeladenen ordner ...\swfaddress-2.0\samples\adobe
findet ihr beispiele mit as2. wenn ihr eine eigene swf baut, müsst ihr daran denken die „as“ dateien in den ordner mir eurer swf zu legen.
in die hauptzeitleiste kommt folgendes script:

HTML-Code:
// Custom utilities
function replace(str, find, replace) {
	return str.split(find).join(replace);
}
function toTitleCase(str) {
	return str.substr(0,1).toUpperCase() + str.substr(1);
}
function formatTitle(title) {
	return 'euer titel' + (title != '' ? ' / ' + toTitleCase(replace(title.substr(1, title.length - 2), '/', ' / ')) : '');
}

// SWFAddress handling
SWFAddress.setStrict(false);
SWFAddress.onChange = function() {
	var value = SWFAddress.getValue();
	if (_currentframe == 2 && value == '') {
		play();
	} else {
		gotoAndStop('$' + value);
	}
	SWFAddress.setTitle(formatTitle(value));
}
die bildmarkierungen werden folgend benannt:
$/home/
$/kontakt/
etc.

anschließend erstellt ihr für eure buttons movieclips, in welche das folgende script kommt:

HTML-Code:
this.onRelease = function() {
	SWFAddress.setValue('/home/');
}
this.onRollOver = function() {
	SWFAddress.setStatus('/home/');
}
this.onRollOut = function() {
	SWFAddress.resetStatus();
}
jetzt müsst ihr nur noch abspeichern, film testen, film.swf und eure index.html oder default.html uploaden. fertig!***
*dakini* ist offline   Mit Zitat antworten
Alt 06-03-2008, 12:45   #2 (permalink)
Flashworker
 
Benutzerbild von sebastian
 
Registriert seit: Nov 2001
Ort: Wiesbaden
Beiträge: 10.945
Habe mal für dich ergänzt, dass es sich um eine Anleitung handelt
sebastian ist offline   Mit Zitat antworten
Alt 06-03-2008, 12:47   #3 (permalink)
********
 
Benutzerbild von *dakini*
 
Registriert seit: Sep 2004
Ort: nrw deutschland
Beiträge: 43
dank!
*dakini* ist offline   Mit Zitat antworten
Alt 07-03-2008, 09:00   #4 (permalink)
INSERT COIN
 
Benutzerbild von pacman.hgw
 
Registriert seit: May 2003
Ort: Hansestadt Greifswald
Beiträge: 1.715
Habe da mal eine Frage zu:

Bei mir werden alle Unterseiten via attachMovie geladen. Wie genau muss ich das denn mit meinen Buttons machen? Also man soll ja für die Buttons folgendes Schreiben:

PHP-Code:
this.onRelease = function() {
    
SWFAddress.setValue('/home/');
}
this.onRollOver = function() {
    
SWFAddress.setStatus('/home/');
}
this.onRollOut = function() {
    
SWFAddress.resetStatus();

Bleibt da /home/ immer gleich oder muss da eben auch der jeweilige Name des Buttons rein wie z.B. kontakt oder projekte? Und wie ist es dann mit den Bildmarkierungen, muss Ich die dann in das erste Schlüsselbild des jeweilig attachten Movie packen?
pacman.hgw ist offline   Mit Zitat antworten
Alt 07-03-2008, 12:23   #5 (permalink)
INSERT COIN
 
Benutzerbild von pacman.hgw
 
Registriert seit: May 2003
Ort: Hansestadt Greifswald
Beiträge: 1.715
Also im Moment sieht es so aus:

Ich kann auf meinen Buttons klicken und die attachen einen MC. Oben in der Adresszeile ändert sich dann auch die Link in .../kontakt und auch der Titel ändert sich. Auch kann man mit dem Zurück- und Vor-button von dem IE benutzen nur passiert dabei nichts in meinen Flashfilm. Verstehe ich ja auch weil:

PHP-Code:
// SWFAddress handling
SWFAddress.setStrict(false);
SWFAddress.onChange = function() {
    var 
value SWFAddress.getValue();
    if (
_currentframe == && value == '') {
        
play();
    } else {
        
gotoAndStop('$'+value);
    }
    
SWFAddress.setTitle(formatTitle(value));
}; 
dort ja steht gotoAndStop('$'+value);! Da stimmt ja der Pfad nicht weil der attachte MC ja nicht auf root liegt! Wie schaffe ich es aber das er immer die korrekte Pfad angabe erhält. Müsste ich daraus denn eine Funktion machen und Parameter übergeben oder wie stelle ich das am besten an?
pacman.hgw ist offline   Mit Zitat antworten
Alt 08-03-2008, 13:49   #6 (permalink)
********
 
Benutzerbild von *dakini*
 
Registriert seit: Sep 2004
Ort: nrw deutschland
Beiträge: 43
EmptyMovieclip

hi,
versuche es doch mal mit EmptyMovieclip.
du schreibst in eine bildmarkierung: $/externerFilm/
und schreibst folgendes as ins gleiche frame:

Code:
// Leere Filmsequenz (Erzeugen)
this.createEmptyMovieClip("mc_laden", 1);

// Positioniere
mc_laden._x = 0.0;
mc_laden._y = 0.0;

// Ladevorgang (Prüfen
onEnterFrame = function () {
	if (mc_laden.getBytesLoaded() == mc_laden.getBytesTotal()) {
		txtStatus = "GELADEN";
		delete onEnterFrame;
	} else {
		txtStatus = "FEHLER";
		delete onEnterFrame;
	}
};
// Externen Film (Laden)
mc_laden.loadMovie("externerFilm.swf");
so bleibst du auf der hauptzeitleiste.
wenn du in deinem film weiter navigierst, musst du
Code:
removeMovieClip (mc_laden)
in die anderen frames schreiben.

Geändert von *dakini* (08-03-2008 um 13:56 Uhr)
*dakini* ist offline   Mit Zitat antworten
Alt 10-03-2008, 11:10   #7 (permalink)
INSERT COIN
 
Benutzerbild von pacman.hgw
 
Registriert seit: May 2003
Ort: Hansestadt Greifswald
Beiträge: 1.715
Mhh, also ich ich habe 2 Dateien. Die erste ist die Preloader.swf die via MovieClipLoader die Hauptseite.swf lädt. Das heißt, dass alle in der Hauptseite befindlichen MovieClips in einem Container liegen, der ja in der Preloader.swf erstellt wurde... Nun habe ich in meinen ersten Frame (Hauptseite.swf) folgendes zu stehen:

PHP-Code:
var arr:Array = new Array();
var 
len:Number arr.length(meinMC);
for (var 
0i<indexi++) {
    var 
mc:MovieClip arr[i];
    
mc.onRollOver = function() {
        
SWFAddress.resetStatus();
    };
    
mc.onRollOut = function() {
        
SWFAddress.setStatus('/home/');
    };
    
mc.onRelease = function() {
        
SWFAddress.setValue('/projekte/');
    };

Und dann am Ende habe ich zu stehen:

PHP-Code:
// SWFAddress handling
SWFAddress.setStrict(false);
SWFAddress.onChange = function() {
    var 
value SWFAddress.getValue();
    if (
_currentframe == && value == '') {
        
play();
    } else {
        
gotoAndStop('$'+value);
    }
    
SWFAddress.setTitle(formatTitle(value));
}; 
In dem MovieClip "meinMC" habe ich als Bildbezeichnung (Frame 1): "$/projekte/"

Und im 1 Frame meiner Hauptseite.swf steht: "$/home/"

Wenn Ich das nun alles mal hochlade und es teste, dann verändert sich zwar die Adresszeile und der Titel der Seite, auch kann ich den Zurück- und Vorbutton benutzen, jedoch ohne das er damit den Flashfilm beeinflusst! Weiß nicht so genau wo ran es liegt...

EDIT: Es kann ja eigentlich nur ein Pfadproblem sein oder?

Geändert von pacman.hgw (10-03-2008 um 11:11 Uhr)
pacman.hgw ist offline   Mit Zitat antworten
Alt 11-03-2008, 16:10   #8 (permalink)
INSERT COIN
 
Benutzerbild von pacman.hgw
 
Registriert seit: May 2003
Ort: Hansestadt Greifswald
Beiträge: 1.715
Ich habe immer noch irgendwie große Probleme damit. Und zwar macht mir diese Zeile zuschaffen:

PHP-Code:
gotoAndStop('$'+value); 
Da Ich mich - wenn ich auf einen Button klicke - in einen anderen MC befinde, stimmt dieses gotoAndStop nicht mehr. Wenn ich dann im Explorer auf den Zurückbutton klicke, bewegt er der Abspielkopf sich ja innerhalb dieses MC's. Weil ja nur ein gotoAndStop steht. Wie schaffe ich es aber nun das die Pfade alle stimmen... Wenn ich alles in einen Film habe, also sich alles auf einer Ebene abspielt, dann klappt es ja. Aber mit meinen ganzen externen MC's funktioniert das irgendwie nicht. Außerdem steht bei mir auch nicht /home/ in der Addresszeile... mhh ich versteh das nich so recht. Mißt...
pacman.hgw ist offline   Mit Zitat antworten
Alt 12-03-2008, 09:27   #9 (permalink)
********
 
Benutzerbild von *dakini*
 
Registriert seit: Sep 2004
Ort: nrw deutschland
Beiträge: 43
also, ich habe meinen film in viele kleine swfs aufgeteilt. im hauptfilm werden diese swfs über die frames geladen in denen die dateien in den emptympvieclip geladen werden.
die kleinen swfs selber bestehen nur aus einem frame und ein wenig animation. jegliche buttons in den swfs verweisen wieder auf den hauptfilm mit den bildbezeichnungen $/kleine_swf1/ ; $/kleine_swf2/ etc.
wenn du deinen "meinMC" aufteilst, ist das zwar etwas arbeit, aber deine seite wird ladefreundlicher und der rest funktioniert auch.
*dakini* ist offline   Mit Zitat antworten
Alt 12-03-2008, 13:50   #10 (permalink)
INSERT COIN
 
Benutzerbild von pacman.hgw
 
Registriert seit: May 2003
Ort: Hansestadt Greifswald
Beiträge: 1.715
Also wenn ich das jetzt richtig verstanden habe, muss defenitiv der attachte MC auf _root in einem separaten Frame liegen. Also das ich z.B. alle MC schon auf Frame 1 attache und sie z.B. erst auf Frame 14 sichtbar mache. Denn im Moment lief bei mir alles auf einem Frame ab...

EDIT: Zu mal, wenn ich einen MC attache ist der ja Frame übergreifend...

Geändert von pacman.hgw (12-03-2008 um 15:35 Uhr)
pacman.hgw ist offline   Mit Zitat antworten
Alt 12-03-2008, 16:00   #11 (permalink)
INSERT COIN
 
Benutzerbild von pacman.hgw
 
Registriert seit: May 2003
Ort: Hansestadt Greifswald
Beiträge: 1.715
Also müsste ich bei mir alles umbauen damit es funktioniert? Im Moment hat Hauptfilm nur 1 Frame. Alles andere wird attached...
pacman.hgw ist offline   Mit Zitat antworten
Alt 19-03-2008, 12:29   #12 (permalink)
Neuer User
 
Registriert seit: Aug 2004
Beiträge: 287
kurze frage von mir:

SWFObject erkennt ja die Flash Version und gibt dementsprechend bei zu niedriger Version das "Ausweich"-div-Tag aus.
Gilt das Ganze dann auch, wenn der User überhaupt kein Flash Player installiert hat?
~flasher ist offline   Mit Zitat antworten
Alt 08-04-2008, 10:45   #13 (permalink)
Möchtegern Flasher
 
Benutzerbild von flashjunior
 
Registriert seit: Mar 2003
Ort: Flashmania
Beiträge: 89
Hab's gerade verwendet, aber zusätzlich noch das "swfMacMouseWheel" benutzt... hat bestens geklappt.
http://www.nadine-imboden.ch/
flashjunior ist offline   Mit Zitat antworten
Alt 14-04-2008, 02:10   #14 (permalink)
Neuer User
 
Registriert seit: Jul 2003
Beiträge: 1.197
Ich habe gerade folgendes Problem mit SWFAddress:

In der History wird ja auch der Titel angezeigt. Wenn ich in der History zurückgehe und dann per History wieder x Schritte forward gehe, dann stimmen die Titel. Aber rückwärts ist es immer um einen verschoben!
Wenn ich in der Seite normal navigiere, dann erscheint in der History immer der aktuelle Titel als der letzte (also der auf den ich käme, wenn ich einen Historyschritt zurückgehe).
__________________
EDV = Ende Der Vernunft
hmpf ist offline   Mit Zitat antworten
Alt 16-07-2008, 11:32   #15 (permalink)
Neuer User
 
Registriert seit: Jun 2002
Beiträge: 12
hallo

durch zufall hatte ich eben js aus bei mir.

was wird dann genau alternativ dargestellt?
ZeroFlash ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 12:41 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele