Duplizierte MovieClips als Masken und deren Erscheinung [Flash 9]
| Beiträge: 4 Registriert: Jul 2010
| 22.07.2010, 17:42
Hallo Zusammen,
ich hoffe ihr könnt mir weiterhelfen.
Hab mich hier schon wund-gesucht und bin leider auf keine Lösung gestoßen.
Ich möchte eine Art Mosaik effekt programmieren, also Bilder sollen "Kachelweise" (5x4Kacheln) aus und eingeblendet werden. Wenn jetzt eine Kachel des Bildes aus-fadet soll das Bild dort drunter sichtbar werden. Wenn alle Kacheln auf Bild2 gewechselt sind, soll das ganze von Vorne laufen und Bild3 soll auftauchen.
Bis jetzt hab ich mir etwas zusammen gebaut, was die Bühne mit duplizierten MCs füllt(direkt im 1. Frame), wenn die Stage voll ist, faden die Kacheln aus und das darunter liegende Bild wird sichtbar.
Mein Ansatz ist nun, dass die Kacheln die Maske für das erste Bild darstellen ( voll == komplett Sichtbar) beim Wegfaden wird dann das 1. Bild nicht mehr Sichtbar, gleichzeitig müssten die Kachel-Masken auftauchen und das 2. Bild anzeigen. Diese Mechanik müsste dann ja auch auf das 3. Übertragbar sein.
Ich hoffe ihr könnt mir bei meinem vorhaben behilflich sein. Momentan habe ich Probleme die Kacheln als Maske zu definieren, anscheinend übernimmt er duplizierte MCs nicht als Maske die erste Kachel(aus der dupliziert wird) zeigt er noch als Maske an.
Auch die Animation der MC-Maske verliert sich.
ActionScript: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 | function zeigeDot(anzahlbilder) {
//Fläche füllen
//Anzahl y
for (y=0; y<4; y++) { //17
//Anzahl x
for (x=0; x<5; x++) { //35
i++;
// Create an y,x Position
duplicateMovieClip ("_root.dot", "dot_"+y+"_"+x, i+2);
this["dot_"+y+"_"+x]._y = y*dot._height;
this["dot_"+y+"_"+x]._x = x*dot._width;
trace("dot_"+y+"_"+x);
//test1.setMask("dot_"+y+"_"+x);
test1.setMask("dot");
//bild1.setMask("dot_"+y+"_"+x);
}
// Blende Start Element aus
dot._visible = false;
//Überblend-Animation
//bild_einblenden.gotoAndPlay(2);
}
//Bild.gotoAndPlay(10);
}
this.createEmptyMovieClip("test1", 1);
this.test1.createEmptyMovieClip("image", 1);
this.test1.setMask("dot");
this.test1.image.loadMovie("bild1.jpg");
//Aufruf nach erzeugen des BIldes
zeigeDot(2);
|
Gruß aus HH
*beim Anhang muss bild1.jpg im root liegen
Angehängte Dateien:
| | | Beiträge: 4 Registriert: Jul 2010
Themenautor/in
| 22.07.2010, 20:24
http://www.flashforum.de/forum/flash-mx-2004/mosaik-uberblendeffekt-162385.html
Das hilft ! | | | Beiträge: 4 Registriert: Jul 2010
Themenautor/in
| 26.07.2010, 12:55
Arg, hab ein Problem. Bei dem ich eure Erfahrung brauche.
Ich arbeite jetzt mit transparenten Masken, die per alpha ausgeblendet werden. Um die "attached" Movies beim erzeugen mit alpha zuversehen benötigen diese cacheAsBitmap.
Leider stürtz dann Flash komplett ab. Ohne cacheAB passiert dies nicht.
Wie kann ich das Problem lösen? Entweder cacheAsBitmap umgehen oder gibts eine andere Lösung?
Veröffentlicht für Flash 9, AS2
PHP: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
|
//Anzahl Y Felder
for (var i = 0; i<anzahl_y; i++) {
//Anzahl X Felder
for (var x = 0; x<anzahl_x; x++) {
v++;
//Moviename, Quelle, Z-Index
attachMovie("bild1", ("bild1"+v), v);
attachMovie("bild2", ("bild2"+v), 100+v);
//Moviename, Quelle, Z-Index
attachMovie("maske", ("maske"+v), 200+v);
this["bild1"+v].cacheAsBitmap = true;
this["bild2"+v].cacheAsBitmap = true;
this["maske"+v].cacheAsBitmap = true;
//trace(this["maske"+v]);
this["maske"+v]._x = x*168-22;
this["maske"+v]._y = i*124;
this["bild2"+v].setMask(this["maske"+v]);
if (anzahl_felder[v] != "undefined")
{
anzahl_felder[v] = v;
}
}
}
|
Gruß | Geändert von morritza am 26.07.10 um 12:56 Uhr | |
| | Beiträge: 1776 Wohnort: Laimbach 6 1/2 Registriert: Nov 2002
| 26.07.2010, 13:50
|
|