tutorials.de Buch-Aktion 05/2012
  • Webmaster & Internet

    Webmaster & Internet
  • Flash-Tutorials

    von p-flash Veröffentlicht: 12.11.05 11:01
    Seitenaufrufe: 489 
    NEUE VERSION VERFÜGBAR! Am Ende des Tutorials.

    Einleitung:


    Dieses Tutorial soll eine Möglichkeit zeigen, wie man mit Flash und PHP einen einfachen Html-Editor realisieren kann. Es sind ausschließlich Kenntnisse in Flash MX 2004 und AS 2 erforderlich. Die php-Datei ist ziemlich klein, aber dennoch sehr wichtig. Ich habe versucht den php-Code so ausführlich wie möglich zu erklären, damit dieser auch ohne Vorkenntnisse verständlich ist.

    Vorschau


    Die Klasse <HtmlEditor>:

    Die Klasse HtmlEditor bietet lediglich eine Methode zum hinzufügen von Tags in ein Textfeld ein.
    von p-flash Veröffentlicht: 21.06.05 11:08
    Seitenaufrufe: 538 
    Vorschau Dieses Tutorial zeigt wie man eine Windows ähnliche Navigation erstellen kann.

    Hier eine Vorschau:
    http://www.p-creations.com/tutorials/winNavi/winNavi.swf

    Zur Original-Ansicht

    Die Ordnerstruktur sieht folgendermaßen aus:



    Im images Ordner befindet sich der icons Ordner. In diesem kommen die Piktogramme, die später von Flash geladen werden.

    Im sections Ordner kommen die swf-Dateien der einzelnen Sections.

    Die gesamten Dateien werden in die Datei winNavi.swf geladen, welche sich im Hauptordner befindet. Der komplette Code befindet sich im ersten Frame in der Hauptzeitleiste.
    von Tobias Menzel Veröffentlicht: 10.03.05 11:09
    Seitenaufrufe: 1388 
    In diesem Tutorial wolle wir uns einen eigenen, - leidlich dynamischen - vertikalen Rollbalken basteln, mit dem wir beliebige Inhalte scrollen können.

    Wir beginnen zunächst mit den nötigen grafischen Komponenten:
    • Hintergrund für den Rollbalken
    • Anfasser (Slider)
    • Pfeile zum schrittweisen Rollen
    Unser Rollbalken wird vertikal dynamisch skalierbar sein, aber wir werden eine feste Breite vorgeben. In diesem Beispiel habe ich mich auf schlanke 10 Pixel festgelegt; selbstverständlich könnt Ihr eine eigene Größe wählen. Wichtig ist nur, dass die verschiedenen Komponenten zusammenpassen und mit ganzzahligen Werten skaliert werden.

    von Tobias Menzel Veröffentlicht: 07.02.05 11:10
    Seitenaufrufe: 1444 
    In diesem Tutorial wollen wir einen einfachen horizontalen Newsticker erstellen, der Texte beliebiger Länge ohne Unterbrechung als Laufschrift anzeigt.

    Zunächst legen wir einige MovieClips an, die unseren Lauftext darstellen. Wir beginnen mit einem MC, der lediglich ein leeres dynamisches Textfeld enthält. Die benötigten Zeichen sollten in diesem Textfeld eingebunden werden; z.B. alle Buchstaben, Zahlen, Satzzeichen sowie die deutschen Sonderzeichen ä, ö, ü, Ä, Ö, Ü und ß.
    von Tobias Menzel Veröffentlicht: 09.01.05 11:12
    Seitenaufrufe: 872 
    Hi,

    in diesem Tutorial werden wir einen MovieClip-Prototype erstellen, mit dem für jeden MovieClip individuelle ToolTips angelegt werden können.

    Wir verwenden hier (fast) ausschließlich ActionScript mit Zeichnungsmethoden - ich werde versuchen, den Code Schritt für Schritt zu erklären.

    Damit unser ToolTip mit einer eingebetteten Schrift, die auf Alphafading reagiert, angezeigt wird, legen wir in der Bibliothek zunächst eine neue Schriftart an (z.B. Verdana, 10pt, Alias-Text) und geben es unter seinem Bezeichner zum Export für ActionScript frei (Wichtig: die im Schriftart-Objekt angegebene Schriftgröße muss der später im Prototype angegebenen Schriftgröße entsprechen).
    von Veröffentlicht: 22.12.04 11:13
    Seitenaufrufe: 873 
    XML und CSS in Flash

    XML ist gar nicht so schwer wie man vielleicht denkt. Es ist eine Seitenbeschreibungssprache
    ähnlich wie HTML, bietet aber weit aus mehr Möglichkeiten. Man kann die Formatierungsvorgaben selbst definieren.

    Zu Beginn erstellen wir das XML-Dokument dafür verwenden wir einen Texteditor, der die Ausgabe als Unicode-Text unterstützt. Ich verwende als Windows nutze "WordPad".
    Öffnet "WordPad" erstellt eine neue Datei und speichert diese unter dem
    Namen: "xmltut.xml" als Unicode-Text

    Nun beginnen wir mit den ersten Zeilen XML-Code.
    von Tobias Menzel Veröffentlicht: 17.11.04 11:14
    Seitenaufrufe: 881 
    Da doch immer wieder Fragen nach diesen Themen aufkommen, hier ein Tutorial für eine simple Menünavigation mit dynamisch nachladbaren Inhalten und externem Preloader.

    Zunächst erstellen wir uns die nötigen Steuerelemente: Buttons für das Menü, einen leeren Container, der die Inhalte aufnimmt und den Preloader, der den Fortschritt mit einem Balken anzeigt.

    Unser Button benötigt im Prinzip nur eine Fläche, die angeklickt werden kann und eine einzige Memberfunktion. Damit es aber zumindest ein wenig nach etwas aussieht, habe ich dem Button zwei Schlüsselbilder (für MouseOut und MouseOver) verpasst. Auf einer weiteren Ebene fügen wir ein dynamisches Textfeld für die Beschriftung ein, dem wir den Instanznamen "btext" geben.
    von Tobias Menzel Veröffentlicht: 06.11.04 11:15
    Seitenaufrufe: 1338 
    Dieses Tutorial erklärt die Erstellung eines einfachen Formmailers mit Flash und PHP

    Zunächst erstellen wir einen MovieClip (mailform), in dem wir unser Formular unterbringen. Ich habe hier für jede Gruppe von Objekten eine eigene Ebene angelegt:

    -> Überschriften (title)
    -> Eingabefelder (fields)
    -> Schaltflächen (buttons)
    -> Anzeigefenster (display)

    -> sowie eine Ebene für das Script (code)
    von Tobias Menzel Veröffentlicht: 20.10.04 11:16
    Seitenaufrufe: 543 
    Dieses Tutorial zeigt, wie man in Flash Pegelmeter simulieren kann.

    Wir erstellen zunächst drei MovieCLips für die LEDs in Grün, Gelb und Rot. Hierbei verwenden wir ein Formtweening, um die Helligkeit nach und nach zu verringern. Wir fügen ein stop() im ersten und im letzen Schlüsselbild ein, damit die Animation nicht sofort abspielt.



    Als nächstes erstellen wir einen MovieClip für das komplette Pegelmeter (meter) , der 7 dieser LEDs enthält (man kann natürlich mehr als sieben verwenden, wenn man den Code entsprechend anpasst).

    Den LEDs geben wir durchnummerierte Instanznamen (m1, m2, ... m7).
    von DJ Twin Veröffentlicht: 04.10.04 11:17
    Seitenaufrufe: 1115 
    Im folgenden Tutorial erstellen wir eine Tabelle, die mit externen Daten gefüttert wird.

    1) Wir erstellen einen neuen MovieClip [strg + F8] mit dem Name "scrollfeld".

    2) Wir ziehen die Komponente "ScrollPane" in unseren erstellten MovieClip, geben ihr den Instanznamen "liste" und skalieren ihn in die gewünschte Größe.

    3) Zurück auf die Hauptbühne; Nun ziehen wir den erstellten MovieClip von der Bibliothek auf die Bühne und geben ihm den Instanznamen "scroll_mc".

    4) Damit wir in der Tabelle unsere gewünschte Schriftart verwenden können, laden wir diese in die Bibliothek. Wir klicken in der Bibliothek rechts oben auf das Symbol und wählen "Neue Schriftart" und geben die gewünschten Parameter ein (Ich habe für das Tutorial die Schriftart "Arial" verwendet und sie auch so benannt).

    5) Als nächstes gehen wir in die Bild-Aktionen mit [F9] (Das Schlüsselbild muss ausgewählt sein!)

    6) Mit dem Befehl "loadVariables" laden wir die externen Daten in den Film
    von ExMD Veröffentlicht: 24.09.04 11:18
    Seitenaufrufe: 585 
    Vorwort:
    Viele kennen bestimmt das Problem, denn ich bin selbst schon unzählige Male in diversen Foren darauf gestoßen und hab mich lange damit rumgeschlagen, bis ich ne Lösung fand:

    Man importiert eine Grafik in ein Flashdokument, um diese als Hintergrund zu benutzen. Diese Grafik hat die gleichen Ausmaße wie das Flashdokument selbst (z.B. 100 x 100 Pixel).
    Hat man seine Animation fertiggestellt und spielt sie in einem externen Player ab, kommt dann die Überraschung... Die als Hintergrund benutzte Grafik zeigt Pixelfehler. Meistens leichte Verzerrungen zur Seite (s. Abb. 2 in der angehängten Zipdatei).

    Seltsamerweise tritt dies nur im Flashplayer selbst auf, bzw. auf Webseiten, wo die Animation eingebunden wurde.
    In Flash selbst erkennt man nichts.
    Deswegen ist davon auszugehn, dass der Player selbst einen Bug hat, den es zu umgehen gilt.
    In Version 7 des Players tritt meiner Erfahrung nach dieser Darstellungsfehler seltener bis gar nicht mehr auf. Doch leider kann man nicht davon ausgehen, dass Jedermann das aktuellste Flash-Plugin installiert hat.

    Es gibt nun diverse Vorschläge, um diesen Bug zu umgehen. Leider habe ich schlechte Erfahrungen damit gemacht, denn zum einen waren diese Tricks teilweise sehr Zeitaufwenig in der Umsetzung, zum andern klappen sie auch nicht immer (da war die Rede davon, andere Bildformate beim importieren zu benutzen, das Bild im Grafikprogramm auf 99% zu verkleinern und in Flash wieder auf 100% zu vergrößern, die Grafik als geloopten Moviclip umzuwandeln oder sie in Flash zu teilen und wieder zusammenzufügen usw. usw.)

    Dabei is die Lösung extrem simpel!

    Lösung:
    Flash hat also Probleme eine Grafik in einer Animation korrekt darzustellen, wenn diese importierte Grafik genau so groß ist wie die Animation selbst, also "press sitzt".
    Lasst bei der Grafik, bevor ihr sie in eurem Bildbearbeitungsprogramm als jpg o.ä. exportiert, einfach einen Rand von einem Pixel an jeder Seite stehen (oben, unten, rechts und links).
    Bei dem 100x100 Pixel-Beispiel wäre eure Grafik dann also 102x102 Pixel groß (die Grafik nicht das Flash-Dokument! ). (s. Abb. 3 in der angehängten Zipdatei: Hier liegt ein weißer, ein Pixel großer Rahmen um die Grafik)
    Richtet ihr sie dann mittig in Flash aus, steht sie etwas über. Das macht allerdings nichts, denn das wird durch die Dokumentgröße der Flashanimation sowieso nicht mehr zu sehen sein.

    Spielt ihr die Animation nun im Player oder Browser ab, tritt die Verzerrung nicht mehr auf!

    ACHTUNG!
    Viele machen den Fehler und vergrößern die Grafik einfach! Das ist aber nicht Sinn der Sache!
    Wenn ihr Photoshop benutzt, geht auf "Bild / Arbeitsfläche..." und gebt als Wert für Breite und Höhe jeweils 2 Pixel mehr ein!
    Es geht ja nicht darum das Bild an sich zu vergrößern, sondern nur das Dokument, bzw. die Arbeitsfläche zu erweitern.

    Das war ne Menge Text für ne sehr einfache Lösung, aber lieber zu ausführlich, als zu unverständlich...
    Ich hoffe, ich konnte einigen Verzweifelten helfen
    von Tobias Menzel Veröffentlicht: 25.08.04 11:19
    Seitenaufrufe: 1227 
    Hi,

    ich habe eine kleine Anleitung zum Erstellen von animierten Schaltflächen in Flash MX erstellt.

    Dieses Tutorial zeigt, wie man mit wenigen Schritten animierte Schaltrlächen mit einem
    Partikeleffekt erstellt.
    Zunächst fertigen wir uns mit Photoshop oder einer anderen Bildbearbeitungssoftware
    die Grundelemente des Buttons an.
    Wir benötigen:

    - einen Hintergrund (es empfiehlt sich ein dunklerer Hintergrund, damit die Partikel gut sichtbar sind.

    - 3 verschiedene Variationen mit helleren Bereichen

    - ein helleres Leuchten für den „Clickeffekt“. diese Fläche sollte transparent sein und kann ein wenig über die Ränder des Buttons hinausstrahlen
    von Matthias Kannengiesser Veröffentlicht: 23.05.04 11:21
    Seitenaufrufe: 276 
    Hi Folks,

    Hier mal ein kurzes und bündiges Tutorial zum Thema Einsatz des prototype-Objekts (Fallbeispiel: MovieClip.prototype) in Flash MX 2004. Was gilt es beim Einsatz zu beachten!

    Fallbeispiel (MovieClip.prototype)
    PHP-Code:
    MovieClip.prototype.wabbern = function(x_endy_endmultiplikatorratio) {    
            
    // Initialisierung
            
    if (this.sX == undefinedthis.sX 0;
            if (
    this.sY == undefinedthis.sY 0;        
                        
            
    // Berechnung
            
    this.sX this.sX*multiplikator+(x_end-this._xscale)*ratio;
            
    this.sY this.sY*multiplikator+(y_end-this._yscale)*ratio;
            
            
    // Umsetzung auf den jeweils betroffene MovieClip-Instanz
            
    this._xscale += this.sX;
            
    this._yscale += this.sY;        
    };

    // Ausführung
    this.onEnterFrame = function() {
        
    mc.wabbern(200,200,0.8,0.7);


    1. Schreibweise movieclip - ist Syntaktisch nicht korrekt. Es muss, wie folgt lauten: MovieClip. In Flash 5 und MX war dies noch egal - in MX 2004 nicht!

    PHP-Code:
    // In Flash 5 und MX (Funktionsfähige Schreibweisen)
    movieclip
    MovieClip
    Movieclip

    // In Flash MX 2004 (Funktionsfähige schreibweise)
    MovieClip 
    von Matthias Kannengiesser Veröffentlicht: 14.05.04 11:22
    Seitenaufrufe: 270 
    Hi Folks,

    Habe hier mal was für alle Datums-Objekt geschädigten - eine auf UTC (Universal Coordinated) basierte Lösung. Sowohl für Flash MX als auch Flash MX 2004 geeignet.

    PHP-Code:
    // AnalogUhr
    function initUTCUhr(posX,posY,radius,pzone,pstadt,pname,ptiefe) {
        
    // Variablen Initialisierung
        
    var radiantstart_xstart_yend_xend_y;
        var 
    zeit,std,mins,sek;
        var 
    sek_winkel,min_winkel,std_winkel;
        var 
    sek_radiant,min_radiant,std_radiant;
        var 
    sek_x,sek_y,min_x,min_y,std_x,std_y;
        
        
    // Winkel in Bogenmass
        
    function winkelBogen(winkel) {
            return 
    winkel/180*Math.PI;
        }
        
        
    // MovieClip für AnalogUhr erzeugen
        
    this.createEmptyMovieClip(pname,ptiefe);
        
        
    // Textfeld für Statdanzeige erzeugen
        
    this[pname].createTextField("anzeige_txt",ptiefe+1,posX,posY+radius,0,0);
        
    this[pname].anzeige_txt.autoSize "center";
        
    this[pname].anzeige_txt.text pstadt;
        
        
    // Ziffernblatt zeichnen    
        
    for(var i=1i<=60i++) {        
            
    radiant winkelBogen(i*6);        
            if (
    i%== 0) {            
                
    start_x Math.cos(radiant)*(radius-10);
                
    start_y Math.sin(radiant)*(radius-10);
                
    end_x Math.cos(radiant)*radius;
                
    end_y Math.sin(radiant)*radius;            
                
    this.lineStyle(20100);
                
    this.moveTo(posX+start_xposY+start_y);
                
    this.lineTo(posX+end_xposY+end_y);                
            } else {
                
    start_x Math.cos(radiant)*(radius-5);
                
    start_y Math.sin(radiant)*(radius-5);
                
    end_x Math.cos(radiant)*radius;
                
    end_y Math.sin(radiant)*radius;
                
    this.lineStyle(10100);
                
    this.moveTo(posX+start_xposY+start_y);
                
    this.lineTo(posX+end_xposY+end_y);
            }
        }
        
    this[pname].onEnterFrame = function() {
            
    // Zeiger entfernen        
            
    this.clear();        
            
    // Uhrzeit ermitteln
            
    zeit = new Date();
            
    sek zeit.getUTCSeconds();
            
    mins zeit.getUTCMinutes();
            
    std zeit.getUTCHours()+pzone;
            
    // AM/PM ermitteln
            
    if  (std >= 24) {
              
    std std 24
            }        
            if (
    std 12) {
                
    this.anzeige_txt.text pstadt " / am";
            } else {
                
    this.anzeige_txt.text pstadt " / pm";
            }
            
    // Zeigerwinkel Berechnen
            
    sek_winkel sek*6-90;
            
    min_winkel mins*6-90;
            
    std_winkel std*30+mins/60*30-90;
            
    // die winkel werden in bogenmaße umgerechnet
            
    sek_radiant winkelBogen(sek_winkel);
            
    min_radiant winkelBogen(min_winkel);
            
    std_radiant winkelBogen(std_winkel);
            
    // Zeigerpunkte via Sin/Cos berechnen
            // Sekunden
            
    sek_x posX Math.cos(sek_radiant)*radius;
            
    sek_y posY Math.sin(sek_radiant)*radius;
            
    // Minuten
            
    min_x posX Math.cos(min_radiant)*(radius*1);
            
    min_y posY Math.sin(min_radiant)*(radius*1);
            
    // Sekunden
            
    std_x posX Math.cos(std_radiant)*(radius*.75);
            
    std_y posY Math.sin(std_radiant)*(radius*.75);
            
    // Zeiger zeichnen
            // Sekunden
            
    this.lineStyle(10xff0000100);
            
    this.moveTo(posXposY);
            
    this.lineTo(sek_xsek_y);        
            
    // Minuten
            
    this.lineStyle(20100);
            
    this.moveTo(posXposY);
            
    this.lineTo(min_xmin_y);        
            
    // Stunden
            
    this.lineStyle(30100);
            
    this.moveTo(posXposY);
            
    this.lineTo(std_xstd_y);
        }     
    }

    // Städte und Zeitzonen
    var x=0,y=0;
    stadtliste = new Array("Berlin","Istanbul","New York","Moskau","Tokyo","Sydney");
    zonenliste = new Array(2,3,-5,4,9,10);

    // Uhren erzeugen
    for (var j=0stadtliste.lengthj++) {    
        
    startpos 150;
        
    x++;
        
    pX startpos 120*x;    
        if (
    j%== 0) {
            
    x=0;
            
    y++;
            
    pX startpos;
            
    pY 120*y;
        }
        
    initUTCUhr(pX,pY,50,zonenliste[j],stadtliste[j],"uhr"+j,j);    
    }

    /*
    // Uhren (UTC)
    // Berlin (+01:00)
    initUTCUhr(Stage.width/2,Stage.height/2,50,2,"Berlin","uhr",1);
    // Istanbul (+02:00)
    initUTCUhr(Stage.width/2,75,50,3,"Istanbul","uhr2",2);
    // New York (-05:00)
    initUTCUhr(Stage.width/2,325,50,-5,"New York","uhr3",3);
    // Moskau (+03:00)
    //initUTCUhr(100,100,50,3,"Moskau","uhr4",4);
    */ 
    Einzeln können die analog Uhren natürlich ebenfalls erzeugt werden:

    PHP-Code:
    // Uhren (UTC)
    // Berlin (+01:00)
    initUTCUhr(Stage.width/2,Stage.height/2,50,1,"Berlin","uhr",1);
    // Istanbul (+02:00)
    initUTCUhr(Stage.width/2,75,50,2,"Istanbul","uhr2",2);
    // New York (-05:00)
    initUTCUhr(Stage.width/2,325,50,-5,"New York","uhr3",3); 
    Hinweis
    GMT (Greenwich Mean Time) - im normalen täglichen Gebrauch können UTC und GMT gleichgesetzt werden.

    Info: Universal Time Coordinated
    Die UTC wird durch Mittelung der Zeittakte von genau 100 ausgewählten, in diversen Staaten betriebenen Atomuhren erzeugt. Die Signale dieser Atomuhren laufen beim "Internationalen Büro für die Zeit" in Paris zusammen. In Deutschland wurde die UTC durch das "Gesetz über die Zeitbestimmung" vom 25.07. 1978 eingeführt. In den Arbeitskarten und Unterlagen des Deutschen Wetterdienstes wird die UTC seit 1985 verwendet.

    MEZ, MESZ und GZ

    MEZ (Mittel Europäische Zeit) Mittlere Sonnenzeit des durch Görlitz verlaufenden 15. östlichen Meridians

    MESZ (MittelEuropäische SommerZeit) Gegenüber der mitteleuroäischen Zeit um 1 Stunde vorverlegte Uhrzeit zur besseren Ausnutzung des Tageslichtes und zur Herbeiführung von Erleichterungen im europäischen Bahnreiseverkehr während des Sommerhalbjahres.

    GZ (Gesetzliche Zeit) Durch das Zeitgesetz von 1978 wird die mitteleuropäische Zeit MEZ oder die mitteleuropäische Sommerzeit MESZ als gesetzliche Zeit festgelegt. Sie soll im amtlichen und geschäftlichen Verkehr verwendet werden. Die Bezeichnung GZ bei Zeitangaben bedeutet daher im Sommer MESZ und im Winter MEZ.

    Der Unterschied zwischen MEZ beziehungsweise MESZ und der koordinierten Weltzeitskala UTC beträgt:

    MEZ = UTC + 1h
    MESZ = UTC + 2h

    Liebe Grüsse
    Matze K.
    von Rena Hermann Veröffentlicht: 09.02.04 11:23
    Seitenaufrufe: 1163 
    Hallo zusammen,

    Komplexe Anwendungen bestehen selten aus nur einer Swf-Datei und so stellt sich immer wieder die Frage, wie externe Swf- oder auch Jpg-Dateien mit einem Preloader versehen werden können, ohne diesen jedesmal der externen Datei voranzustellen, was bei Jpgs ja auch gar nicht geht.

    Prinzipiell geht es darum, nur einen Loader im Hauptfilm zu haben, der den Ladestatus beliebiger hinzugeladener externer Dateien (swf/jpg) anzeigt.

    Benötigt dazu wird:
    - Ein Zielmovieclip mit Instanznamen, hier manuell auf die Bühne gelegt und mit dem Instanznamen "ladeziel" versehen, in den die externen Daten geladen werden. Natürlich läßt sich der auch dynamisch erstellen mit createEmptyMovieclip Das ist dann eure Anpassungsarbeit.
    - Einen Movieclip (hier mit dem Instanznamen "loader") in dem die Ladeanzeigen sind. Hier ein Balken mit dem Instanznamen "balken" und ein dynamisches Textfeld mit dem Instanznamen "prozentanzeige"
    - Und natürlich Buttons, die externe Daten laden.

    Das Script für alles liegt für dieses Beispiel komplett im ersten Frame auf der Hauptzeitleiste und lautet folgendermaßen (und ich hoffe, ich habe es einigermaßen ausreichend kommentiert).
    PHP-Code:
    //--- Ladeanzeige unsichtbar machen ---------------
    loader._visible false;

    //--- Ladefunktion --------------------------------
    ladestatus = function () {
        
    // Einen onEnterFrame-Event erstellen, so dass nun
        // der Ladezustand kontinuierlich abgefragt und
        // angezeigt wird
        
    loader.onEnterFrame = function() {
            
    // Geladene und zu ladenede Bytetes abfragen
            
    geladen _root.ladeziel.getBytesLoaded();
            
    zuladen _root.ladeziel.getBytesTotal();
            
    // Sicherheitsabfrage, da ein leerer MC so ungefähr
            // 4 bis 5 Bytes hat und zu Verfälschungen führen könnte
            
    if (geladen>=10) {
                
    // Ladeanzeige sichtbar machen
                
    loader._visible true;
                
    // Berechnung der bereits geladenen Prozent
                
    prozent Math.round(geladen/zuladen*100);
                
    // Ausgabe im dynamischen Textfeld "prozentanzeige"
                
    this.prozentanzeige.text prozent+" Prozent geladen";
                
    // Skalierung des Balkens anhand der Prozentzahl
                
    this.balken._xscale prozent;
                
    // Wenn komplett geladen
                
    if (prozent>=100) {
                    
    // den EnterFrame-Event löschen um Performance zu sparen
                    
    delete this.onEnterFrame;
                    
    // die Ladeanzeige wieder unsichtbar machen
                    
    this._visible false;
                }
            }
        };
    };

    //--- Aktionen für die Button_MCs um externe Daten
    //--- in den Ziel-MC "ladeziel" zu laden ---------
    lade_1.onPress = function() {
        
    // Ladebefehl
        
    ladeziel.loadMovie("film1.swf");
        
    // Aufruf der Funktion für die Preloaderanzeige
        
    ladestatus();
    };
    lade_2.onPress = function() {
        
    ladeziel.loadMovie("film2.swf");
        
    ladestatus();
    };
    lade_3.onPress = function() {
        
    ladeziel.loadMovie("bild3.jpg");
        
    ladestatus();
    }; 
    Nicht erschrecken - sind glaub mehr Kommentar- als Scriptzeilen.

    Anzuschauen ist das ganze hier:
    http://www.shockfusion.de/ff/ex_load/main.html

    Und die Beispieldateien gibt es dort:
    http://www.shockfusion.de/ff/ex_load/loader.zip

    Bei anderen Aufbauvarianten des Films (z.B. verschachtelt in Movieclips etc.) müssen dann ggf.die Pfade angepasst werden aber das ist wieder ein anderes Thema, das ihr auch hier im Flash-Tutorials-Board findet -> Thema "Pathfinder".

    Gruß
    Rena
    von Matthias Kannengiesser Veröffentlicht: 01.10.03 11:24
    Seitenaufrufe: 224 
    Hi Folks,

    Hier habe ich ein Flash Crypto Packet für euch. Die Verschlüsselungen basieren auf:


    MD4
    MD5
    SHA-1


    Wobei MD4 und MD5 auf 128-Bit basieren und SHA-1 auf 160-Bit.

    MD5 in Flash
    PHP-Code:
    /*
     * MD5 Algorithm
     * A Flash implementation of the RSA Data Security, Inc. MD5 Message
     * Digest Algorithm, as defined in RFC 1321.
     * Flash Version 1.0 - added and tested by Matthias Kannengiesser 2003.
     * Original JavaScript Version 2.1 Copyright (C) Paul Johnston 1999 - 2002.
     * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
     * Distributed under the BSD License 
     */

    /*
     * Konfigurations Variablen
     * Diese legen die Einstellungen so fest, dass sie mit der Serverseite
     * kompatibel sind. Die Standardeinstellungen sollten jedoch einwandfrei
     * arbeiten.
    */
    var hexcase 0;  // Hex Ausgabe-Format: 0 - klein Buchstaben; 1 - gross Buchstaben   
    var b64pad  ""// Base-64. "=" für strikte RFC Übereinstimmung   
    var chrsz   8;  // Bits pro Zeichen: 8 - ASCII; 16 - Unicode  

    /*
     * Die Funktionen zur Verschlüsselung
    */
    function hex_md5(s){ return binl2hex(core_md5(str2binl(s), s.length chrsz));}
    function 
    b64_md5(s){ return binl2b64(core_md5(str2binl(s), s.length chrsz));}
    function 
    str_md5(s){ return binl2str(core_md5(str2binl(s), s.length chrsz));}
    function 
    hex_hmac_md5(keydata) { return binl2hex(core_hmac_md5(keydata)); }
    function 
    b64_hmac_md5(keydata) { return binl2b64(core_hmac_md5(keydata)); }
    function 
    str_hmac_md5(keydata) { return binl2str(core_hmac_md5(keydata)); }

    // Verwenden
    /*
    trace(hex_md5("matze"));
    trace(b64_md5("matze"));
    trace(str_md5("matze"));
    trace("------------------------");
    trace(hex_hmac_md5("passwort","matze"));
    trace(b64_hmac_md5("passwort","matze"));
    trace(str_hmac_md5("passwort","matze"));
    */

    function md5_vm_test()
    {
      return 
    hex_md5("abc") == "900150983cd24fb0d6963f7d28e17f72";
    }

    function 
    core_md5(xlen)

      
    x[len >> 5] |= 0x80 << ((len) % 32);
      
    x[(((len 64) >>> 9) << 4) + 14] = len;
      
      var 
    =  1732584193;
      var 
    = -271733879;
      var 
    = -1732584194;
      var 
    =  271733878;

      for(var 
    0x.length+= 16)
      {
        var 
    olda a;
        var 
    oldb b;
        var 
    oldc c;
        var 
    oldd d;
     
        
    md5_ff(abcdx[i0], , -680876936);
        
    md5_ff(dabcx[i1], 12, -389564586);
        
    md5_ff(cdabx[i2], 17,  606105819);
        
    md5_ff(bcdax[i3], 22, -1044525330);
        
    md5_ff(abcdx[i4], , -176418897);
        
    md5_ff(dabcx[i5], 12,  1200080426);
        
    md5_ff(cdabx[i6], 17, -1473231341);
        
    md5_ff(bcdax[i7], 22, -45705983);
        
    md5_ff(abcdx[i8], ,  1770035416);
        
    md5_ff(dabcx[i9], 12, -1958414417);
        
    md5_ff(cdabx[i+10], 17, -42063);
        
    md5_ff(bcdax[i+11], 22, -1990404162);
        
    md5_ff(abcdx[i+12], ,  1804603682);
        
    md5_ff(dabcx[i+13], 12, -40341101);
        
    md5_ff(cdabx[i+14], 17, -1502002290);
        
    md5_ff(bcdax[i+15], 22,  1236535329);

        
    md5_gg(abcdx[i1], , -165796510);
        
    md5_gg(dabcx[i6], , -1069501632);
        
    md5_gg(cdabx[i+11], 14,  643717713);
        
    md5_gg(bcdax[i0], 20, -373897302);
        
    md5_gg(abcdx[i5], , -701558691);
        
    md5_gg(dabcx[i+10], ,  38016083);
        
    md5_gg(cdabx[i+15], 14, -660478335);
        
    md5_gg(bcdax[i4], 20, -405537848);
        
    md5_gg(abcdx[i9], ,  568446438);
        
    md5_gg(dabcx[i+14], , -1019803690);
        
    md5_gg(cdabx[i3], 14, -187363961);
        
    md5_gg(bcdax[i8], 20,  1163531501);
        
    md5_gg(abcdx[i+13], , -1444681467);
        
    md5_gg(dabcx[i2], , -51403784);
        
    md5_gg(cdabx[i7], 14,  1735328473);
        
    md5_gg(bcdax[i+12], 20, -1926607734);

        
    md5_hh(abcdx[i5], , -378558);
        
    md5_hh(dabcx[i8], 11, -2022574463);
        
    md5_hh(cdabx[i+11], 16,  1839030562);
        
    md5_hh(bcdax[i+14], 23, -35309556);
        
    md5_hh(abcdx[i1], , -1530992060);
        
    md5_hh(dabcx[i4], 11,  1272893353);
        
    md5_hh(cdabx[i7], 16, -155497632);
        
    md5_hh(bcdax[i+10], 23, -1094730640);
        
    md5_hh(abcdx[i+13], ,  681279174);
        
    md5_hh(dabcx[i0], 11, -358537222);
        
    md5_hh(cdabx[i3], 16, -722521979);
        
    md5_hh(bcdax[i6], 23,  76029189);
        
    md5_hh(abcdx[i9], , -640364487);
        
    md5_hh(dabcx[i+12], 11, -421815835);
        
    md5_hh(cdabx[i+15], 16,  530742520);
        
    md5_hh(bcdax[i2], 23, -995338651);

        
    md5_ii(abcdx[i0], , -198630844);
        
    md5_ii(dabcx[i7], 10,  1126891415);
        
    md5_ii(cdabx[i+14], 15, -1416354905);
        
    md5_ii(bcdax[i5], 21, -57434055);
        
    md5_ii(abcdx[i+12], ,  1700485571);
        
    md5_ii(dabcx[i3], 10, -1894986606);
        
    md5_ii(cdabx[i+10], 15, -1051523);
        
    md5_ii(bcdax[i1], 21, -2054922799);
        
    md5_ii(abcdx[i8], ,  1873313359);
        
    md5_ii(dabcx[i+15], 10, -30611744);
        
    md5_ii(cdabx[i6], 15, -1560198380);
        
    md5_ii(bcdax[i+13], 21,  1309151649);
        
    md5_ii(abcdx[i4], , -145523070);
        
    md5_ii(dabcx[i+11], 10, -1120210379);
        
    md5_ii(cdabx[i2], 15,  718787259);
        
    md5_ii(bcdax[i9], 21, -343485551);

        
    safe_add(aolda);
        
    safe_add(boldb);
        
    safe_add(coldc);
        
    safe_add(doldd);
      }
      return Array(
    abcd);
      
    }

    function 
    md5_cmn(qabxst)
    {
      return 
    safe_add(bit_rol(safe_add(safe_add(aq), safe_add(xt)), s),b);
    }
    function 
    md5_ff(abcdxst)
    {
      return 
    md5_cmn((c) | ((~b) & d), abxst);
    }
    function 
    md5_gg(abcdxst)
    {
      return 
    md5_cmn((d) | (& (~d)), abxst);
    }
    function 
    md5_hh(abcdxst)
    {
      return 
    md5_cmn(dabxst);
    }
    function 
    md5_ii(abcdxst)
    {
      return 
    md5_cmn(^ (| (~d)), abxst);
    }

    function 
    core_hmac_md5(keydata)
    {
      var 
    bkey str2binl(key);
      if(
    bkey.length 16bkey core_md5(bkeykey.length chrsz);

      var 
    ipad = Array(16), opad = Array(16);
      for(var 
    016i++) 
      {
        
    ipad[i] = bkey[i] ^ 0x36363636;
        
    opad[i] = bkey[i] ^ 0x5C5C5C5C;
      }

      var 
    hash core_md5(ipad.concat(str2binl(data)), 512 data.length chrsz);
      return 
    core_md5(opad.concat(hash), 512 128);
    }

    function 
    safe_add(xy)
    {
      var 
    lsw = (0xFFFF) + (0xFFFF);
      var 
    msw = (>> 16) + (>> 16) + (lsw >> 16);
      return (
    msw << 16) | (lsw 0xFFFF);
    }

    function 
    bit_rol(numcnt)
    {
      return (
    num << cnt) | (num >>> (32 cnt));
    }

    function 
    str2binl(str)
    {
      var 
    bin = Array();
      var 
    mask = (<< chrsz) - 1;
      for(var 
    0str.length chrsz+= chrsz)
        
    bin[i>>5] |= (str.charCodeAt(chrsz) & mask) << (i%32);
      return 
    bin;
    }

    function 
    binl2str(bin)
    {
      var 
    str "";
      var 
    mask = (<< chrsz) - 1;
      for(var 
    0bin.length 32+= chrsz)
        
    str += String.fromCharCode((bin[i>>5] >>> (32)) & mask);
      return 
    str;
    }

    function 
    binl2hex(binarray)
    {
      var 
    hex_tab hexcase "0123456789ABCDEF" "0123456789abcdef";
      var 
    str "";
      for(var 
    0binarray.length 4i++)
      {
        
    str += hex_tab.charAt((binarray[i>>2] >> ((i%4)*8+4)) & 0xF) +
               
    hex_tab.charAt((binarray[i>>2] >> ((i%4)*8  )) & 0xF);
      }
      return 
    str;
    }

    function 
    binl2b64(binarray)
    {
      var 
    tab "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
      var 
    str "";
      for(var 
    0binarray.length 4+= 3)
      {
        var 
    triplet = (((binarray[i   >> 2] >> * ( i   %4)) & 0xFF) << 16)
                    | (((
    binarray[i+>> 2] >> * ((i+1)%4)) & 0xFF) << )
                    |  ((
    binarray[i+>> 2] >> * ((i+2)%4)) & 0xFF);
        for(var 
    04j++)
        {
          if(
    binarray.length 32str += b64pad;
          else 
    str += tab.charAt((triplet >> 6*(3-j)) & 0x3F);
        }
      }
      return 
    str;

    Achtung
    Ohne Kenntnisse über Bitwise-Operatoren läuft nichts!

    Hinweis
    Urheber des ganzen auf JavaScript Basis ist Paul Johnston.
    Die MD4 und SHA-1 Version findet Ihr im Attachment.

    Wünsche viel Spass damit!

    Liebe Grüsse
    Matze K.
    von Matthias Kannengiesser Veröffentlicht: 01.10.03 11:24
    Seitenaufrufe: 1041 
    Der Einsatz von externen Daten in Flash-Projekten ist kaum noch zu vermeiden. Oftmals kommen noch Datenbanken samt serverseitiger PHP-Skripte zum Einsatz. Damit bei der Formatierung keine unliebsamen Überraschungen auftauchen sollte man sich fünf Minuten Zeit nehmen und sich den unten aufgeführten PHP-Funktionen u. Flash-Methoden zu wenden.

    Zeichen aus Texten entfernen
    Um bestimmte Zeichen aus externen Texten zu entfernen stehen in PHP einige nützliche Funktionen zur Verfügung. Die Funktion die sicher recht eindeutig in Ihrer Funktion ist ist str_replace() und soll hier vorgestellt werden.

    PHP und Steuerungszeichen, wie Zeilenumbrüche entfernen

    Um beispielsweise Steuerungszeichen, wie Zeilenumbrüche aus einem Text zu entfernen wird noch die PHP Funktion chr() benötigt.

    PHP-Code:
    chr(10) - neue Zeile (line feed)
    chr(13) - wagenrücklauf (carriage return) 
    Ihr könnt mit Hilfe der PHP Funktionen str_replace() und chr() die Steuerzeichen 10 u. 13 entfernen.

    Bsp.:
    PHP-Code:
    $inhalt str_replace (chr(10), ""$inhalt);
    $inhalt str_replace (chr(13), ""$inhalt); 
    Hinweis
    Natürlich können auch sämtliche andere Zeichen aus dem Text entfernt werden. Die beiden Funktion sind nicht nur auf Steuerzeichen beschränkt. Für diejenigen, die noch etwas tiefer in die Materie vorstossen wollen und sich auch vor regulären Ausdrücken nicht fürchten, seien folgende PHP Funktionen empfohlen - ereg_replace() u/o. preg_replace().

    Flash und Steuerungszeichen, wie Zeilenumbrüche entfernen
    Natürlich kann man diese Steuerungszeichen auch mit Hilfe von Flash entfernen. Hierbei sind die Flash-Methoden split() und join() behilflich.

    Escape-Sequenzen
    Zusätzlich kommen die sog. Escape-Sequenzen zum Einsatz, wie \n, \r, \t, etc. mit deren Hilfe lassen sich die Steuerungszeichen entfernen, da die Escape-Sequenzen selbst nichts anderes darstellen als entsprechende Steuerungszeichen, wie z.B. \n (neue Zeile).

    Bsp.:
    PHP-Code:
    // Steuerzeichen entfernen
    inhalt "Hallo\nDu da\rhey";
    inhalt=inhalt.split("\n").join("")
    inhalt=inhalt.split("\r").join("");
    trace(inhalt); 
    Bsp.:
    PHP-Code:
    // In einer Zeile
    inhalt "Hallo\nDu da\rhey";
    inhalt=inhalt.split("\n").join("").split("\r").join();
    trace(inhalt); 
    Hinweis
    Die Variable inhalt steht hier stellvertretend für die eingelesenen externen Texte.

    Zusatz zu PHP
    Sollte man PHP einsetzen kann man folgende PHP Methode verwenden: nl2br(). Mit Hilfe von nl2br() werden vor sämtlichen Zeilenumbrüchen eines Strings HTML-Zeilenumbrüche eingesetzt. So lassen sich Zeilenumbrüche in dynamische HTML-Textfelder gezielt platzieren und auch darstellen.

    Bsp.:
    PHP-Code:
    $inhalt nl2br($inhalt); 
    Viel Erfolg!

    Liebe Grüsse
    Matze K.