Eurokicker
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 26.09.2005, 15:27   #1
TP-Moderator
 
Benutzerbild von Wanderratte
 
Registriert seit: Mar 2002
Wanderratte ist ein richtiges Arbeitstier - DANKEWanderratte ist ein richtiges Arbeitstier - DANKEWanderratte ist ein richtiges Arbeitstier - DANKEWanderratte ist ein richtiges Arbeitstier - DANKEWanderratte ist ein richtiges Arbeitstier - DANKEWanderratte ist ein richtiges Arbeitstier - DANKE

[flash8]praktischer Einsatz vom Blurfilter


Hier findet ihr ein kleines Beispiel wie man den Blurfilter auf Texte anwendet.
Natürlich wird hier alles dynamisch erzeugt

PHP-Code:
import flash.filters.BlurFilter;
//Array für den Textinhalt
textInhalt = new Array("der""neue""Blurfilter""mit""dynamisch""erzeugten""Textfelder""im""Einsatz");
//Deklaration der Variablen
var aus_mc:MovieClip;
//zaehler
var zaehler:Number 0;
//x/y Position für den Blureffekt
var blurY:Number 0;
var 
blurX:Number;
//Qualtität des Blureffektes
var quality:Number 2;
//Bühnenweite 
var bWeite:Number Stage.width;
//Bühnenhoehe
var bHoehe:Number Stage.height;
//Arraylaenge
var tLaenge:Number textInhalt.length;
//Berechnung der Filmbreite
var fLaenge:Number bWeite*tLaenge;
//Funktion zum erstellen des oberen MovieClip
function hauptMC() {
    
aus_mc erstelleTextfeld(Stage.widthStage.height"text_feld");
    
aus_mc._x bWeite/2;
    
aus_mc._y bHoehe/2;
}
//Funktion zum Erstellen des Inhaltes
function erstelleTextfeld(w:Numberh:Numbername:String) {
    
//Formation der Textfelder
    
var txt_fmt = new TextFormat();
    
with (txt_fmt) {
        
font "Arial";
        
size 40;
        
bold true;
    }
    
//erstellt einen neuen Movieclips, auf die nächst freie Ebene
    
var mc:MovieClip this.createEmptyMovieClip(namethis.getNextHighestDepth());
    
//For-Schleife zum Erstellen der einzelnen Textfelder
    
for (i=0i<tLaengei++) {
        
//Methode gibt die Informationen zu den Textmaßen an
        
var groesse txt_fmt.getTextExtent(textInhalt[i]);
        
//Variable z wird für die Ausrichtung gebraucht
        
var groesse.textFieldWidth/2;
        
//Erstellt das Textfeld, genau in der Größe und Hoehe wie gebraucht wird.
        
mc.createTextField("tfeld"+iiw*i-z0groesse.textFieldWidthgroesse.textFieldHeight);
        
mc["tfeld"+i].border false;
        
mc["tfeld"+i].wordWrap true;
        
mc["tfeld"+i].text textInhalt[i];
        
mc["tfeld"+i].setTextFormat(txt_fmt);
    }
    return 
mc;
}
//Funktion für den Blureffekt und Bewegung
function blur() {
    
ziel aus_mc._x-bWeite;
    
aus_mc.onEnterFrame = function() {
        
this._x += (ziel-this._x)/5;
        
blurX Math.abs((ziel-this._x)/5);
        var 
filter:BlurFilter = new BlurFilter(blurXblurYquality);
        var 
filterArray:Array = new Array();
        
filterArray.push(filter);
        
this["tfeld"+zaehler].filters filterArray;
        if (
zaehler == tLaenge-1) {
            
this["tfeld"+0].filters filterArray;
        } else {
            
this["tfeld"+(zaehler+1)].filters filterArray;
        }
        if (
blurX<=.05) {
            
this["tfeld"+zaehler]._x += fLaenge;
            
zaehler++;
            if (
zaehler>=tLaenge) {
                
zaehler 0;
                
removeMovieClip(this);
                
hauptMC();
            }
            
delete this.onEnterFrame;
        }
    };
}
//start
hauptMC();
//Interval
var interval;
interval setInterval(blur5000); 
und wie immer, ich werde zu diesem Script keine Fragen per Mail oder PN beantworten, dafür ist das Forum da.

Viel Spaß beim ausprobieren.
__________________
Gruß

Wanderratte
Gebildet ist,
wer weiß,
wo er findet,
was er nicht weiß.

Eurokicker
Home
Amazon Wunschzettel

Geändert von Wanderratte (28.09.2005 um 10:38 Uhr).
Wanderratte ist offline   Mit Zitat antworten


Alt 27.09.2005, 00:10   #2
TP-Moderator
 
Benutzerbild von Wanderratte
 
Registriert seit: Mar 2002
Wanderratte ist ein richtiges Arbeitstier - DANKEWanderratte ist ein richtiges Arbeitstier - DANKEWanderratte ist ein richtiges Arbeitstier - DANKEWanderratte ist ein richtiges Arbeitstier - DANKEWanderratte ist ein richtiges Arbeitstier - DANKEWanderratte ist ein richtiges Arbeitstier - DANKE
und hier kommt die genaue Beschreibung des Scriptes.


In Flash8 sind einige neue Filter integriert worden, unter anderem auch der Blurfilter.
Vorbei sind die Zeiten wo man mit mehreren Bildern arbeiten musste und das doch recht aufwändige Ausrichten auf der Bühne bis alles passte. Die neuen Filter sind allesamt nur auf einem MC (MovieClip) anzuwenden, dies zur Info für die Designer die lieber auf der Timeline arbeiten. In diesem Beispiel habe ich mich für eine komplett dynamische Lösung entschieden, da mir das Scripten einfach mehr liegt.

Nach der kurzen Theorie kommen wir zum praktischen Teil.

Als erstes wird ein neuer Film erstellt, die Bühnengröße ist hierbei egal, da dass Script den Inhalt automatisch an der Bühnenbreite/ höhe ausrichtet.
Nach dem der praktische Teil erledigt ist, geht es an das Script. Im Nachfolgenden werden ich kurz die wichtigsten Befehle bzw. den groben Ablauf erklären.

In der ersten Zeile muss die Klasse für den Blurfilter importiert werden.

PHP-Code:
import flash.filters.BlurFilter
Als nächstes kommt der Text der Angezeigt werden soll, dieser wird in einem Array gespeichert.

PHP-Code:
//Array für den Textinhalt
textInhalt = new Array("der""neue""Blurfilter""mit""dynamisch""erzeugten""Textfelder""im""Einsatz"); 
Jetzt kommt die Deklaration der Variablen
PHP-Code:
//Deklaration der Variablen
var aus_mc:MovieClip;
//zaehler
var zaehler:Number 0;
//x/y Position für den Blureffekt
var blurY:Number 0;
var 
blurX:Number;
//Qualtität des Blureffektes
var quality:Number 2;
//Bühnenweite 
var bWeite:Number Stage.width;
//Bühnenhoehe
var bHoehe:Number Stage.height;
//Arraylaenge
var tLaenge:Number textInhalt.length;
//Berechnung der Filmbreite
var fLaenge:Number bWeite*tLaenge
Die erste Funktion ist für das erstellen des Hauptmovieclips und Positionierung zuständig , der im späteren Verlauf des Scriptes bewegt wird.

PHP-Code:
//Funktion zum erstellen des oberen MovieClip
function hauptMC() {
    
aus_mc erstelleTextfeld(Stage.widthStage.height"text_feld");
    
aus_mc._x bWeite/2;
    
aus_mc._y bHoehe/2;

Die nächste Funktion erstellt die einzelnen Textfelder aus dem Array heraus und ordnet die einzelnen Felder an.

PHP-Code:
//Funktion zum Erstellen des Inhaltes
function erstelleTextfeld(w:Numberh:Numbername:String) { 
In der With-Anweisung werden die Eigenschaft der Textfelder definiert, hier kann natürlich beliebig erweitert werden. Ich habe hier in dem Beispiel nur das Nötigste genommen.

PHP-Code:
//Formatieren der Textfelder
    
var txt_fmt = new TextFormat();
    
with (txt_fmt) {
        
font "Arial";
        
size 40;
        
bold true;
    }
    
//erstellt einen neuen Movieclips, auf die nächst freie Ebene
    
var mc:MovieClip this.createEmptyMovieClip(namethis.getNextHighestDepth()); 
Die For-Schleife nehmen wir etwas genauer unter die Lupe

PHP-Code:
//For-Schleife zum Erstellen der einzelnen Textfelder
    
for (i=0i<tLaengei++) { 
Mit der Methode getTextExtent und den Befehlen, textFieldHeight und textFieldWidth ist man in der Lage die genaue Größe/Höhe auszulesen, die man für das Textfeld braucht. Durch die Formel w *i-z (Bühnenweite * Stelle – ½ Textfeldbreite) wird das neue Textfeld auf der X-Koordinaten in dem Film ausgerichtet.

PHP-Code:
//Methode gibt die Informationen zu den Textmaßen an
        
var groesse txt_fmt.getTextExtent(textInhalt[i]);
        
//Variable z wird für die Ausrichtung gebraucht
        
var groesse.textFieldWidth/2;
        
//Erstellt das Textfeld, genau in der Größe und Hoehe wie gebraucht wird.
        
mc.createTextField("tfeld"+iiw*i-z0groesse.textFieldWidthgroesse.textFieldHeight);
        
mc["tfeld"+i].border false;
        
mc["tfeld"+i].wordWrap true;
        
mc["tfeld"+i].text textInhalt[i];
        
mc["tfeld"+i].setTextFormat(txt_fmt);
    }
    return 
mc;

Die letzte Funktion ist für die eigentlichen Bewegung und das Blureffekt zuständig.

PHP-Code:
//Funktion für den Blureffekt und Bewegung
function blur() { 
Als erstes, wird ein Wert aus der x Postion – der Bühnenbreite an der Variablen ziel übergeben.
PHP-Code:
ziel aus_mc._x-bWeite;
    
aus_mc.onEnterFrame = function() { 
Durch diese Berechnung wird der Hauptmovieclip auf der x-Koordinaten bewegt und je näher es dem Endpunkt (ziel) kommt abgebremst.

PHP-Code:
this._x += (ziel-this._x)/5
Durch den Befehl Math.abs wird das Vorzeichen einer Zahl in diesem Fall ein – entfernt so, dass der Wert Positiv ist.

PHP-Code:
blurX Math.abs((ziel-this._x)/5); 
In den nächsten Codezeilen wird der Blurfilter defeniert und dem entsprechenden Textfeld zugewiesen, bei jedem durchlauf der onEnterFrame – Funktion wird der Filter neu definiert und zugewiesen, so dass der Blureffekt bei kleiner werdenden Geschwindigkeit auch abnimmt.

PHP-Code:
var filter:BlurFilter = new BlurFilter(blurXblurYquality);
        var 
filterArray:Array = new Array();
        
filterArray.push(filter);
        
this["tfeld"+zaehler].filters filterArray;
        if (
zaehler == tLaenge-1) {
            
this["tfeld"+0].filters filterArray;
        } else {
            
this["tfeld"+(zaehler+1)].filters filterArray;
        } 
Sobald der Inhalt der Variable blurX kleiner/gleich wie 0.5, den Wert habe ich mittels trace(blurX) ermittelt, nimmt man einen kleineren Wert funktioniert das Script nicht mehr einwandfrei, die einzigste Möglichkeit wäre sicherzustellen, dass die Berechnung immer mit <= Null ist. Was aber hier nicht unbedingt von Nöten ist. Wird der Wert erreicht bzw.: Unterschritten wird das Textfeld am Ende des Filmes postioniert und die Variable zaehler um 1 erhöht.
PHP-Code:
        if (blurX<=.05) {
            
this["tfeld"+zaehler]._x += fLaenge;
            
zaehler++; 
Das Löschen und neu Erstellen des Hauptfilmes musste hier sein, weil der Hauptfilm durch das Versetzen der Textfelder immer länger wurde und Flash irgendwann die Textfelder nicht mehr richtig positioniert hat. Der User kriegt von diesem Vorgang nichts mir, da das erste Wort wieder auf der Bühne sichtbar und ausgerichtet ist.

PHP-Code:
if (zaehler>=tLaenge) {
                
zaehler 0;
                
removeMovieClip(this);
                
hauptMC();
            }
            
delete this.onEnterFrame;
        }
    };

Hier wird der Hauptfilm gestartet
PHP-Code:
//start
hauptMC(); 
Zum Schluß wird noch ein Interval gesetzt, damit der Film auch von alleine weiterläuft.
PHP-Code:
//Interval
var interval;
interval setInterval(blur5000); 
Im Anhang findet ihr die SWF und HTML-Seite zum anschauen, die Fla habe ich mit absicht weggelassen weil ich davon ausgehe dass jeder in der Lage ist, dass Script in Flas reinzukopieren
Angehängte Dateien
Dateityp: zip blur_filter.zip (1,6 KB, 142x aufgerufen)
__________________
Gruß

Wanderratte
Gebildet ist,
wer weiß,
wo er findet,
was er nicht weiß.

Eurokicker
Home
Amazon Wunschzettel

Geändert von Wanderratte (28.09.2005 um 10:39 Uhr).
Wanderratte ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Flash > Sammlung Actionscript 1 und 2
[flash8]praktischer Einsatz vom Blurfilter [flash8]praktischer Einsatz vom Blurfilter
« [MX / MX 2004] Zeichnen mit AS | Galerie die wie ein Buch aufgebaut ist »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

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

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


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:13 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67