Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 28-11-2006, 23:12   #1 (permalink)
Neuer User
 
Registriert seit: Sep 2001
Ort: Stuttgart
Beiträge: 29
AS-Mc`s nacheinander ausführen

Hallo,

ich habe schon viel gefunden zum Thema nacheinander ausführen. Es handelt sich hierbei leider ausschließlich um Frame-basierende Lösungen.
Bei mir liegt aller Code im ersten und einzigen Frame und die MC´s werden per AS erstellt.

Hier die Grundlagen:

Ich habe mir ein Prototypen gebaut, welcher die Bewgungen meiner Mc`s steuert:
Code:
// Prototype zum beschl. Bewegen eines MC in X- und Y-Richtung
MovieClip.prototype.move_xy = function(move_x:Number, move_y:Number, delay:Number) {
	this.new_x = this._x + move_x;
	this.new_y = this._y + move_y;
	
	this.onEnterFrame = function() {
		this.diffx = this.new_x - this._x;
		this.diffy = this.new_y - this._y;
		
		if (move_x != 0) {
			( this.diffx > 0.2 || this.diffx < -0.2 ) ? this._x += this.diffx/delay : delete this.onEnterFrame;
		};
		
		if (move_y != 0) {
			( this.diffy > 0.2 || this.diffy < -0.2 ) ? this._y += this.diffy/delay : delete this.onEnterFrame;
		};
		updateAfterEvent();
	};
};
Nun hab ich mir einen Container gebaut, in welchem weitere Mc`s geladen werden:
Code:
function _laodContainer ()  {
	
	// Existiert bereits ein Contaier wird der "alte" ausgefahren
	con != undefined ? ( con.move_xy(0, Stage.height-230, 5), con.removeMovieClip() ): 0;

	// Neuen Contaier erstellen und positionieren
	var con:MovieClip = createEmptyMovieClip("con", 10);
	con._x = Stage.width-390;
	con._y = 230;
		
	// BG Rechteck in Container laden
	createRectangle(con, "rec2", 11, "0x494949", 100, 0, Stage.height-230, 175, Stage.height-230);
	
	// Titel-Balken in Container laden, alpha=0
	createRectangle(con, "rec2_color", 12, "0x44C8F5", 100, 0, Stage.height-230, 175, 10);

	// Einfahren des Hintergrund Rechtecks
	con.rec2.move_xy(0, -Stage.height+230, 2);

	// Einfahren des Titel-Balken
	con.rec2_color.move_xy(0, -Stage.height+230, 5);
};
Die Funktion createRectangel erstellt einfach nur per createEmptyMovieClip und beginFill ein MC in dem Container.

Die Fragen:

Wie Ihr das auch von vielen Flash-Websiten kenn, werden die Inhalte oft mit Effekten eingeblendet. Z.B. fährt erst der Hintergrund ins Bild, dann faded die Überschrift ein und zum Schluss erscheint irgendwie der Text. Dies versuch ich auch zu erstellen (siehe oben).

Nun weiß ich jedoch nicht, wie ich alle die Aktionen aus der Funktion _laodContainer nacheinander ablaufen lasse? Zur Zeit laufen alle gleizeitig ab.
Mir fehlt mehr oder weniger ein Rückgabewert, nach dem Motto:
"wenn 1 fertig, dann startet 2"

Ich dachte schon an ein return in der Prototyp Funktion. Jedoch return die Funktion bereits vor Beendigung der onEnterFrame Aktion.

Ich brauche einen Rückgabewert bei Ende der onEnterFrame Aktion.

Ist das überhaupt die "übliche" Methode oder lieg ich mit meinem Ansatz total falsch. Wie programmiert ihr solche Projekte?

Vor allem bin ich daran interessiert, wie man sagen wir einen Inhalt per Button läd, vorher jedoch den "alten" Inhalt mit einer Bewegung aus dem Bild fährt und ERST dann unloaded.

Gruß Oliver
stamina ist offline   Mit Zitat antworten
Alt 29-11-2006, 08:06   #2 (permalink)
HAY
Neuer User
 
Benutzerbild von HAY
 
Registriert seit: Aug 2002
Ort: Faust-Stadt
Beiträge: 2.577
hi
mal ein ganz einfaches beispiel wie mann so was mchen kann.
wenn du mehrere variablen oder speziele abbruchbedingungen brauchst
kanst du das ja in einem mehrdimensionales array packen.
PHP-Code:
// MC ablauf liste
_global.mcAblauf = [mc1mc2mc3mc2mc1];
// Bedingung für den Start de nächsten MC
_global.mcNextS = [100509010020];
_global.counter 0;
MovieClip.prototype.move_xy = function (nextMCstart) {
    
this._x 0;
    
counter++
    
this.onEnterFrame = function () {
        
this._x++;
        if (
this._x nextMCstart) {
            
delete this.onEnterFrame;
            
mcAblauf[counter].move_xy (mcNextS[counter]);
        }
    };
};
mcAblauf[counter].move_xy (mcNextS[counter]);
trace(mcAblauf)
trace(mcNextS
__________________
gruß Harry
HAY 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 22:21 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele