Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 27-01-2007, 14:11   #1 (permalink)
mette
 
Registriert seit: Jan 2007
Beiträge: 2
Vordergrundbild über Effekt legen/ 'VirtualWords'

Hallo zusammen!
ich habe einen netten Effekt gefunden, in dem Wörter zufällig "fliegen" und nach Mausklick auf das jeweilige Wort, einem entgegen geflogen kommen.
Mein Problem: Ich möchte die Wörter hinter einer Maske "fliegen" lassen, also einem Vordergrundbild mit "Löchern", durch die man dann auf die Wörter klicken kann.

Aktionen 'Szene1':
Code:
// Hauptzeitleiste als Umgebung definieren
Object.environment = this;

// Kamera Objekt erzeugen
this.cam = {x:0, y:0, z:500, dx:0, dy:0, dz:-500};

// Umgebungskonstante
this.fl = 1000;

// Raum erzeugen in dem die Clips abgelegt werden
this.createEmptyMovieClip("space",1);

// Raum Zentrieren
space._x=Stage.width/2;
space._y=Stage.height/2;

// Begriffen
this.worte = "wort1, wort2, wort3, wort4";

// Array erzeugen aus den Begriffen
this.wordList = new Array();
this.wordList = this.worte.split(",");

// Jeweils eine Instance pro Begriff erzeugen
for (n=0;n<this.wordList.length;n++) {
	// Word wählen
	var word = Object.environment.wordList[n];
	var x = random(Stage.width)-Stage.width/2;
	var y = random(Stage.height)-Stage.height/2;
	var z = random(Object.environment.fl*2)-Object.environment.fl;

	// Instanz
	cName = "word"+String(depth++);
	init = {txtword: word, x: x, y: y, z: z};
	space.attachMovie("spaceWord", cName, depth, init);
}

this.onEnterFrame = function() {
	this.cam.dz+=.5;
	// Kamera zum Ziel ausrichten
	this.cam.x+=(this.cam.dx-this.cam.x)/10;
	this.cam.y+=(this.cam.dy-this.cam.y)/10;
	this.cam.z+=(this.cam.dz-this.cam.z)/30;	
}

stop();
Aktionen 'WordClip':
Code:
#initclip
// Klasse
function SpaceWord() {
	this.btnSquare.onPress = function() {
		Object.environment.cam.dx = this._parent.x;
		Object.environment.cam.dy = this._parent.y;
		Object.environment.cam.dz = this._parent.z + Object.environment.fl * .9;
		this.enabled = false;
		this._visible = false;
	};
	this.onEnterFrame = this.render;	
}

// MovieClip Eigenschaften vererben
SpaceWord.prototype = new MovieClip();

// Position Rendern
SpaceWord.prototype.render = function() {
	var zActual = Object.environment.fl + this.z - Object.environment.cam.z;
	if (zActual > 0) {
		var scale = Object.environment.fl / zActual;
		this._x = (this.x - Object.environment.cam.x) * scale;
		this._y = (this.y - Object.environment.cam.y) * scale;
		this._xscale = scale * 100;
		this._yscale = scale * 100;
		this._alpha = 100 - 99 * zActual / Object.environment.fl * .5;
	} else {
		this.z += Object.environment.fl * 2;
		this.btnSquare.enabled = true;
		this.btnSquare._visible = true;
	}
};

// Klasse mit der Instanz verknüpfen
Object.registerClass("spaceWord", SpaceWord);
#endinitclip
Bisher folgendes versucht:
  • Neue Ebene mit Vordergrundbild über der Ebene mit dem Code gelegt
  • In der Zeile
    Code:
    // Raum erzeugen in dem die Clips abgelegt werden
    this.createEmptyMovieClip("space",1);
    ("space",1) durch ("space",2) ersetzt.

Beides zeigt keinerlei Wirkung! Wie kann ich einen neuen Clip erzeugen, der hinter einem bereits vorhandenen liegt?

Die Quellen hab ich aus irgendeiner Zeitschrift, dort nannte sich der Effekt 'Virtual Words'. Zu sehen ist dieser Effekt auch auf http://www.phusion25.com

Vielen Dank für Eure Hilfe!
mette ist offline   Mit Zitat antworten
Alt 27-01-2007, 14:35   #2 (permalink)
Euer Nuser
 
Benutzerbild von ~pyropete~
 
Registriert seit: Apr 2004
Ort: Sand-City
Beiträge: 3.483
Hm, Du müsstest meinem Verständnis nach
lediglich den space Clip maskieren mit einem
Clip, der selbst die Maske sein soll, also Deine Löcher z.B.

ActionScript:
  1. // Raum erzeugen in dem die Clips abgelegt werden
  2. this.createEmptyMovieClip("space",1);
  3. // maskieren
  4. space.setMask(lochmaske);

Den lochmaske Clip kannst Du einfach mit auf die
Bühne in eine Ebene legen z.B.

Oder:

ActionScript:
  1. // Raum erzeugen in dem die Clips abgelegt werden
  2. this.createEmptyMovieClip("space",1);
  3. // Neuen Clip darüberlegen
  4. this.createEmptyMovieClip("maske",2);
  5. //Clip maske aus der Bibliothek dranhängen
  6. maske.attachMovie("maske", "maske_mc", 0);

attachMovie und setMask kannst Du Dir in Der Hilfe auch mal
angucken.

--pp

Geändert von ~pyropete~ (27-01-2007 um 14:39 Uhr)
~pyropete~ ist offline   Mit Zitat antworten
Alt 29-01-2007, 11:43   #3 (permalink)
mette
 
Registriert seit: Jan 2007
Beiträge: 2
[Flash 8] - Vordergrundbild über Effekt legen/ 'VirtualWords' - Lösung

Hallo ~pyropete~ und vielen Dank!!!
Habe mich für die .attachMovie-Methode entschieden:
Code:
// Zweite Ebene erzeugen und Maske hinzu fügen
this.createEmptyMovieClip("maske",2);
maske.attachMovie("mc_bgFlash", "mc_bgFlash", 1);
Mette
mette 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 11:13 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele