Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 15-12-2011, 13:52   #1 (permalink)
Neuer User
 
Registriert seit: Jan 2009
Beiträge: 23
Unhappy Effektebenen erstellen?

Hi,
ich sitze seit zwei Tagen an einem Script um einen Kreis mit Glaseffekten zu versehen. Irgendwie komme ich da einfach nicht weiter. Mit AS2 hat alles prächtig funktioniert. Meine Herangehensweise ist so aufgebaut, dass ich ein Hintergrundbild habe, welches zu einem Bitmap umgewandelt wird. Daraus ziehe kopiere ich Pixel in Forum eines Kreis_mc und möchte verschiedene Filter darauf anwenden.

So sieht der spannende Teil aus, bei dem ich denke, dass dort die Effekte nicht gezeichnet werden:

Code:
// Nötige Variablen
var zero:Point = new Point(0,0);
var padding:Number = 10;
var m:Matrix = new Matrix (1, 0, 0, 1, padding / 2, padding / 2);
// Effektvariablen
var displaceFilter:DisplacementMapFilter;
var blurFilter:BlurFilter = new BlurFilter (9, 9, 2);
var bevel:BevelFilter = new BevelFilter (2, 30, 0xffffff, 1, 0x000000, 1, 25, 25, 3, 1, "inner");
var displaceMap:BitmapData = new BitmapData (kreis_mc.width + padding, kreis_mc.height + padding, false, 0x808080);
var tempMap:BitmapData = new BitmapData (kreis_mc.width + padding, kreis_mc.height + padding, true, 0x00808080);
var mergeMap:BitmapData = new BitmapData (tempMap.width, tempMap.height, true, 0x00808080);

// Effekte anwenden und erstellen
displaceFilter = new DisplacementMapFilter (displaceMap, zero, 1, 2, 25, 25, "wrap");
tempMap.fillRect (tempMap.rect,0x00808080);
tempMap.draw (kreis_mc,m,new ColorTransform (1, 0, 0, 1, 0, 0, 0, 0),"normal",null,true);
bevel.angle = 90;
kreis_mc.filters = [bevel]; // Bevel funktioniert an dieser Stelle wunderbar
tempMap.draw (kreis_mc,m,new ColorTransform (0, 1, 0, 1, 0, 0, 0, 0),"add",null,true);
tempMap.applyFilter (tempMap,tempMap.rect,zero,blurFilter);
displaceMap.draw (tempMap);

// Die ENTER_FRAME Function sieht dazu so aus:
function myFunction(event:Event) {
	mergeMap.copyPixels (backgroundBaseMap,rect,zero);
	mergeMap.applyFilter (mergeMap,rect,zero,new BlurFilter (9, 9, 2));
	mergeMap.applyFilter (mergeMap,rect,zero,displaceFilter);
	mergeMap.copyChannel (tempMap,tempMap.rect,zero,8,8);
}
Heraus kommt ein Kreis in Grau mit abgeflachten Kanten. Eigentlich fehlt mir da nun der Blur- und ein leichter Displace Effekt. Mit einem Movieclip und Effekten in der Bühne funktioniert sowas ja überhaupt nicht oder? Mach ich es mir unnötig schwerer? Oder sind kleine Befehle wie ".draw" einfach nicht machbar und sind da das problem? Fehlermeldungen kommen leider keine, die mich darauf hinweisen könnten. Habt ihr Ideen oder leuchten bei euch gleich die Alarmmelder beim Anblick dieses Grauses? Ich weiß nicht weiter.
Doppelherz ist offline   Mit Zitat antworten
Alt 15-12-2011, 14:23   #2 (permalink)
Flasher
 
Registriert seit: Aug 2010
Ort: Stuttgart
Beiträge: 360
Hallo!

Hab dein Script nur grob überflogen und weiß nicht, warum du genau diese copyPixel geschichten machst, aber ich vermute, du machst es dir schwerer als es ist.

Die Eigenschaft filters nimmt ein Array, du kannst also mehrere Filter zuweisen:

Code:
movieclip.filters= [filter1,filter2,filter3];
Liebe Grüße
__________________
Erwähne NIEWIEDER das Wort "Klickdummy"!
Ouroborus23 ist offline   Mit Zitat antworten
Alt 15-12-2011, 17:45   #3 (permalink)
Neuer User
 
Registriert seit: Jan 2009
Beiträge: 23
heißt das, ich brauche dann keine Filter mehr vorher anlegen? also:

Code:
background_ausschnitt.filters= [blur, displace, bevel];
Und wie stelle ich die einzelnen Filter dann ein?

Copypixel hab ich gemacht, weil ich angenommen habe, dass ich dann eine Kreisform aus dem Hintergrund kopiere und diese mit Filtern versehe. Und der Kreis sollte auf den Hintergrund achten, also eben so, als wäre auf dem Hintergrund eine runde milchige Glasscheibe, die man verschieben kann.
Doppelherz ist offline   Mit Zitat antworten
Alt 18-12-2011, 21:28   #4 (permalink)
Flasher
 
Registriert seit: Aug 2010
Ort: Stuttgart
Beiträge: 360
Jein.
Also um es klar zu machen: Doch, du musst ganz normal Filter erstellen. Wenn du einen BlurFilter haben willst, musst du eine Objekt vom Typ BlurFilter erstellen - so wie du das schon richtig machst.
Umd diesen dann jedoch auch anzuwenden ist es nur noch notwendig, der Filter-Eigenschaft eines beliebigen Anzeigeobjektes die richtige Instanz (die vorher erstellte BlurFilter-Variable) des Filters zuzuweisen, und das funktioniert genau wie auf die von dir (und zuvor von mir) aufgezeigte Variante.

Liebe Grüße!
__________________
Erwähne NIEWIEDER das Wort "Klickdummy"!
Ouroborus23 ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
aero, as3, effekt, glass

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


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
mc erstellen via as mitstreiter Flash Einsteiger 1 02-08-2008 09:50
container für mehrere swfs erstellen erstellen agm65 Flash Einsteiger 7 04-07-2007 12:43
pdf´s erstellen 1&1 bubzilla PHP und MySQL 2 05-11-2006 21:28
RGB erstellen? Alphanimal ActionScript 1 11 19-05-2005 17:22
exe erstellen allbird Flash MX 2004 1 11-03-2004 22:40


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:27 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele