Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 09-12-2005, 07:16   #1 (permalink)
Flash0r
 
Benutzerbild von mOss
 
Registriert seit: Jul 2002
Beiträge: 156
MCs per Script bewegen

Hallo,

bin gerade dabei mehrere MCs, die als Buttons verwendet werden, in eine Szene reingleiten zu lassen. Das Ganze würde ich gerne wegen des Lerneffekts per Skript machen. Die MCs sollen kurz nacheinander anfangen reinzugleiten, so dass der erste zuerst auf End-Position ankommt, dann der zweite und der dritte usw.

Kann mir mal jemand einen Tip geben, wo ich hier den Anfang finde. Habe mir mal setInterval() angeschaut. Bin mir aber nicht sicher, ob es damit funktioniert.

Danke
mOss ist offline   Mit Zitat antworten
Alt 09-12-2005, 07:28   #2 (permalink)
Pending…
 
Benutzerbild von psyk
 
Registriert seit: Jul 2002
Ort: Hamburg
Beiträge: 3.866
setInterval ist schon die richtige Wahl, jetzt baust du dir
zusätzlich noch eine Bewegungs-Funktion die du mit dem
Interval aufrufst.
__________________
:: Warum einfach, wenn's auch kompliziert geht! ::
psyk ist offline   Mit Zitat antworten
Alt 09-12-2005, 07:38   #3 (permalink)
Flash0r
 
Benutzerbild von mOss
 
Registriert seit: Jul 2002
Beiträge: 156
Ok, habe eben eine Funktion geschrieben.
PHP-Code:
b1._x = -111;
speed 10;
function 
moveMCsToPosition(){
    
b1._x += speed;
    
setInterval(moveMCsToPosition,100);
    if(
b1._x 105){
        
b1._x 105;
        
clearInterval(t);
    }
}
moveMCsToPosition(); 
Jetzt stehe ich allerdings ein wenig auf dem Schlauch, wie ich die Funktion auf mehrere MCs dynamisch verteilen kann (ohne jeden einzeln anzusprechen mit b1, dann b2 usw. ) und diese nacheinander in einem bestimmten Abstand aktiviert werden. Sowie z.B. Wenn MC1 bei der Hältfe angekommen ist, soll sich MC2 erst bewegen. Wenn dieser wiederum bei der Hälfte angekommen ist, dann MC 3 usw.

Geändert von mOss (09-12-2005 um 07:45 Uhr)
mOss ist offline   Mit Zitat antworten
Alt 09-12-2005, 07:51   #4 (permalink)
°.oO°O.o°.oO.o°O
 
Benutzerbild von bamboocha
 
Registriert seit: Jun 2005
Ort: CH
Beiträge: 1.490
Hi

ich würde dir empfehlen einen Prototyp daraus zu machen! Ausserdem kommst du nicht darum herum, jeden MC einzeln anzusprechen... Um den nächsten anzusprechen, könntest du ja ne Positionsabfrage machen:

PHP-Code:
if(this._x Stage.width/2this._parent["mc"+this.nr].moveMCsToPosition(); 
oder so ^^
__________________
There is no way to happiness, happiness is the way! - Buddha
bamboocha ist offline   Mit Zitat antworten
Alt 09-12-2005, 08:02   #5 (permalink)
Flash0r
 
Benutzerbild von mOss
 
Registriert seit: Jul 2002
Beiträge: 156
Prototyp sagt mir nichts. Gibt es das in MX?
mOss ist offline   Mit Zitat antworten
Alt 09-12-2005, 08:22   #6 (permalink)
°.oO°O.o°.oO.o°O
 
Benutzerbild von bamboocha
 
Registriert seit: Jun 2005
Ort: CH
Beiträge: 1.490
Jo, gibt es! (gibt es glaub ich seit Flash 5)
PHP-Code:
for (var 05i++) {
     
this["b"+i]._x = -111;
     
this["b"+i].nr i;
}
speed 10;
MovieClip.prototype.moveToPosition(){
    
this.onEnterFrame = function() {
         
this._x += speed;
         if(
this._x Stage.width/2) {
             
this._parent["b"+(z+1)].moveToPosition();
         } elseif (
this._x 105) {
             
delete this.onEnterFrame()
             
this._x 105;
         }
    }
}
b1.moveMCsToPosition(); 
__________________
There is no way to happiness, happiness is the way! - Buddha
bamboocha ist offline   Mit Zitat antworten
Alt 09-12-2005, 08:38   #7 (permalink)
Pending…
 
Benutzerbild von psyk
 
Registriert seit: Jul 2002
Ort: Hamburg
Beiträge: 3.866
Hier mal meine Variante.
PHP-Code:
MovieClip.prototype.startTween = function(speedp_xdelay) {
    
this.ID speed;
    var 
_iv setInterval(tweenspeed*300this);
    function 
tween(_mc) {
        if (
_mc._x != p_x) {
            
_mc.onEnterFrame = function() {
                var 
difX = -this._x+p_x;
                if (
Math.round(Math.abs(difX))>0) {
                    
this._x += difX/delay;
                } else {
                    
this._x p_x;
                    
delete this.onEnterFrame;
                }
            };
            
speed == _mc.ID clearInterval(_iv) : null;
        }
    }
};
// : Anweisung
var anz 5;
for (var 
1i<=anzi++) {
    
this['m'+i].startTween(ii*502);

Hab noch ne Abremsung eingebaut.
__________________
:: Warum einfach, wenn's auch kompliziert geht! ::
psyk ist offline   Mit Zitat antworten
Alt 09-12-2005, 08:43   #8 (permalink)
Pending…
 
Benutzerbild von psyk
 
Registriert seit: Jul 2002
Ort: Hamburg
Beiträge: 3.866
@bamboocha: Bei deinem PT ist irgendwie der Wurm drin.
Was ist z.B. "z"?
__________________
:: Warum einfach, wenn's auch kompliziert geht! ::
psyk ist offline   Mit Zitat antworten
Alt 09-12-2005, 09:44   #9 (permalink)
Flash0r
 
Benutzerbild von mOss
 
Registriert seit: Jul 2002
Beiträge: 156
Danke für Euere Antworten. Muss eben mal was anderes machen, werde mich aber nach dem Einspielen und Testen wieder melden.
Gruß
mOss ist offline   Mit Zitat antworten
Alt 09-12-2005, 10:40   #10 (permalink)
°.oO°O.o°.oO.o°O
 
Benutzerbild von bamboocha
 
Registriert seit: Jun 2005
Ort: CH
Beiträge: 1.490
Zitat:
Zitat von psyk
@bamboocha: Bei deinem PT ist irgendwie der Wurm drin.
Was ist z.B. "z"?
Verdammt... Denklücke! Hatte z noch nicht durch this.nr ersetzt! Danke für den Hinweis!
Sollte so heissen:
PHP-Code:
this._parent["b"+(this.nr+1)].moveToPosition(); 
__________________
There is no way to happiness, happiness is the way! - Buddha
bamboocha ist offline   Mit Zitat antworten
Alt 09-12-2005, 13:44   #11 (permalink)
Flash0r
 
Benutzerbild von mOss
 
Registriert seit: Jul 2002
Beiträge: 156
Danke

Danke für Euere Unterstützung!

So ganz habe ich das Prinzip bzw. die verwendeten Befehle nicht verstanden, aber ich habe es geschafft das Skript soweit anzupassen, dass es meinen Bedürfnissen entspricht.
mOss 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:37 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele