Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 24-01-2006, 10:22   #1 (permalink)
Hardstyle DJ
 
Benutzerbild von djdwarf
 
Registriert seit: Nov 2004
Ort: Hamburg
Beiträge: 622
Funktionen durch Schleifen vereinfachen. Warum geht es nicht?

Moinsen FF,


wiedermal ein Problem. Habe folgendes Script:

PHP-Code:

    balken_1
.dummy_mc.10;
    
balken_1.dummy_mc.10;
    
balken_1.dummy_mc.y_wert balken_1._yscale;
    
balken_1.dummy_mc.y_ziel balken_1._yscale;
    
balken_1.dummy_mc.b=1.5;
    
balken_1.dummy_mc.tempo 2;
    

balken_1.onRollOver = function() {
    
balken_1.dummy_mc.y_ziel balken_scale_to;
    
balken_1.dummy_mc.onEnterFrame = function() {
    
balken_1.dummy_mc.y_wert balken_1.dummy_mc.y_wert+balken_1.dummy_mc.vy;
    
balken_1.dummy_mc.vy = (balken_1.dummy_mc.vy+((balken_1.dummy_mc.y_ziel-balken_1.dummy_mc.y_wert)/balken_1.dummy_mc.tempo))/balken_1.dummy_mc.b;
    
balken_1._yscale balken_1.dummy_mc.y_wert;
    
button_1._yscale balken_1.dummy_mc.y_wert;
        }
}

balken_1.onRollOut = function() {
    
balken_1.dummy_mc.y_ziel balken_scale_from;
    
balken_1.dummy_mc.onEnterFrame = function() {
    
balken_1.dummy_mc.y_wert balken_1.dummy_mc.y_wert+balken_1.dummy_mc.vy;
    
balken_1.dummy_mc.vy = (balken_1.dummy_mc.vy+((balken_1.dummy_mc.y_ziel-balken_1.dummy_mc.y_wert)/balken_1.dummy_mc.tempo))/balken_1.dummy_mc.b;
    
balken_1._yscale balken_1.dummy_mc.y_wert;
    
button_1._yscale balken_1.dummy_mc.y_wert;
        }
    } 
Dieses Script wollte ich nun durch eine Schleife erstellen lassen, da auch noch "balken_2", "balken_3" usw. folgen werden. Wollte das dann so lösen:

PHP-Code:
for (i=1;i<anzahl_balken+1;i++){
    
this["balken_"+i].dummy_mc.10;
    
this["balken_"+i].dummy_mc.10;
    
this["balken_"+i].dummy_mc.y_wert this["balken_"+i]._yscale;
    
this["balken_"+i].dummy_mc.y_ziel this["balken_"+i]._yscale;
    
this["balken_"+i].dummy_mc.b=1.5;
    
this["balken_"+i].dummy_mc.tempo 2;
    

this["balken_"+i].onRollOver = function() {
    
this["balken_"+i].dummy_mc.y_ziel balken_scale_to;
    
this["balken_"+i].dummy_mc.onEnterFrame = function() {
    
this["balken_"+i].dummy_mc.y_wert this["balken_"+i].dummy_mc.y_wert+this["balken_"+i].dummy_mc.vy;
    
this["balken_"+i].dummy_mc.vy = (this["balken_"+i].dummy_mc.vy+((this["balken_"+i].dummy_mc.y_ziel-this["balken_"+i].dummy_mc.y_wert)/this["balken_"+i].dummy_mc.tempo))/this["balken_"+i].dummy_mc.b;
    
this["balken_"+i]._yscale this["balken_"+i].dummy_mc.y_wert;
    
button_1._yscale this["balken_"+i].dummy_mc.y_wert;
        }
}

this["balken_"+i].onRollOut = function() {
    
this["balken_"+i].dummy_mc.y_ziel balken_scale_from;
    
this["balken_"+i].dummy_mc.onEnterFrame = function() {
    
this["balken_"+i].dummy_mc.y_wert this["balken_"+i].dummy_mc.y_wert+this["balken_"+i].dummy_mc.vy;
    
this["balken_"+i].dummy_mc.vy = (this["balken_"+i].dummy_mc.vy+((this["balken_"+i].dummy_mc.y_ziel-this["balken_"+i].dummy_mc.y_wert)/this["balken_"+i].dummy_mc.tempo))/this["balken_"+i].dummy_mc.b;
    
this["balken_"+i]._yscale this["balken_"+i].dummy_mc.y_wert;
    
button_1._yscale this["balken_"+i].dummy_mc.y_wert;
        }
    }

Das funktioniert aber nicht. Kann mir jemand sagen, was ich falsch gemacht habe .. ?
djdwarf ist offline   Mit Zitat antworten
Alt 24-01-2006, 10:26   #2 (permalink)
°.oO°O.o°.oO.o°O
 
Benutzerbild von bamboocha
 
Registriert seit: Jun 2005
Ort: CH
Beiträge: 1.490
ab dem onEnterFrame referenzierst du weiter auf ein this["balken"+i].mc_dummy!
Er sucht dann beispielsweise nach:
_root.balken1.mc_dummy.balken1.mc_dummy!
PHP-Code:
this["balken_"+i].onRollOver = function() { 
    
this["balken_"+i].dummy_mc.y_ziel balken_scale_to
    
this["balken_"+i].dummy_mc.onEnterFrame = function() { 
    
this.y_wert this["balken_"+i].dummy_mc.y_wert+this.vy
    
this.vy = (this.vy+((this.y_ziel-this.y_wert)/this.tempo))/this.b
    
this._yscale this.y_wert
    
button_1._yscale this.y_wert
        } 

so dürfte es gehen!
__________________
There is no way to happiness, happiness is the way! - Buddha
bamboocha ist offline   Mit Zitat antworten
Alt 24-01-2006, 10:33   #3 (permalink)
Hardstyle DJ
 
Benutzerbild von djdwarf
 
Registriert seit: Nov 2004
Ort: Hamburg
Beiträge: 622
Hi "iss-das-Leben-mit-dem-großem-Löffel"!


Leider klappt es nicht. Hatte auch schon überlegt, ob der onEnterFrame die Pfade ändert, aber das Script in der vorigen Version (oben) funktioniert und da müsste es dann ja auch nicht gehen. EIGENTLICH müsste es ja 1:1 das selber bleinen nur jeden "balken_1" durch einen Variablen Balken Namen ersetzen, oder nicht? Denk ich da vielleicht zu einfach .. ?
djdwarf ist offline   Mit Zitat antworten
Alt 24-01-2006, 10:37   #4 (permalink)
°.oO°O.o°.oO.o°O
 
Benutzerbild von bamboocha
 
Registriert seit: Jun 2005
Ort: CH
Beiträge: 1.490
^^

Hmmm... aber das RollOver, bzw. RollOut werden ausgeführt? (--> trace) Oder geht überhaupt nix?
__________________
There is no way to happiness, happiness is the way! - Buddha
bamboocha ist offline   Mit Zitat antworten
Alt 24-01-2006, 10:46   #5 (permalink)
Hardstyle DJ
 
Benutzerbild von djdwarf
 
Registriert seit: Nov 2004
Ort: Hamburg
Beiträge: 622
Hmm ... also dieser Trace

PHP-Code:
this["balken_"+i].onRollOver = function() {
    
this["balken_"+i].dummy_mc.y_ziel balken_scale_to;
    
trace(this["balken_"+i].dummy_mc.y_ziel//  <----- 
    
this["balken_"+i].dummy_mc.onEnterFrame = function() {
    
this["balken_"+i].dummy_mc.y_wert this["balken_"+i].dummy_mc.y_wert+this["balken_"+i].dummy_mc.vy;
    
this["balken_"+i].dummy_mc.vy = (this["balken_"+i].dummy_mc.vy+((this["balken_"+i].dummy_mc.y_ziel-this["balken_"+i].dummy_mc.y_wert)/this["balken_"+i].dummy_mc.tempo))/this["balken_"+i].dummy_mc.b;
    
this["balken_"+i]._yscale this["balken_"+i].dummy_mc.y_wert;
    
this["button_"+i]._yscale this["balken_"+i].dummy_mc.y_wert;
        }

wird angesprochen, schmeisst mir aber ein "undefined" .. .hmm ... würde sagen wir kommen der Sache näher ^^. Mit "_parent" funzt es auch nicht ....
djdwarf ist offline   Mit Zitat antworten
Alt 24-01-2006, 10:52   #6 (permalink)
°.oO°O.o°.oO.o°O
 
Benutzerbild von bamboocha
 
Registriert seit: Jun 2005
Ort: CH
Beiträge: 1.490
probiers mal nur mit "this"
*michselbervordenkopfklatsch*
Beim onRollOver ist es das selbe wie beim onEnterFrame, also hier schon Instanzierungsfehler! Dann sucht er dann im onEnterFrame nach
_root.balken1.mc_dummy.balken1.mc_dummy.balken1.mc _dummy! *lol*
__________________
There is no way to happiness, happiness is the way! - Buddha
bamboocha ist offline   Mit Zitat antworten
Alt 24-01-2006, 11:08   #7 (permalink)
Hardstyle DJ
 
Benutzerbild von djdwarf
 
Registriert seit: Nov 2004
Ort: Hamburg
Beiträge: 622
Ahhhh ... nu spuckt er die richtgen Werte beim trace aus, sehr schön Aber wieso klappt dann das Script ganz oben?! Das müsste dann doch "_root.balken1.mc_dummy.balken1.mc_dummy.balken1.m c _dummy" usw. ansprechen ... ?! Versteh ich nich


Funktionieren tut's immer noch nicht ... lol, verdammt ^^ Bei rollOver passiert nüscht.

PHP-Code:
for (i=1;i<anzahl_balken;i++){
    
this["balken_"+i].dummy_mc.10;
    
this["balken_"+i].dummy_mc.10;
    
this["balken_"+i].dummy_mc.y_wert this["balken_"+i]._yscale;
    
this["balken_"+i].dummy_mc.y_ziel this["balken_"+i]._yscale;
    
this["balken_"+i].dummy_mc.b=1.5;
    
this["balken_"+i].dummy_mc.tempo 2;
    

this["balken_"+i].onRollOver = function() {
    
this.dummy_mc.y_ziel balken_scale_to;
    
this.dummy_mc.onEnterFrame = function() {
    
this.y_wert this.y_wert+this.vy;
    
this.vy = (this.vy+((this.y_ziel-this.y_wert)/this.tempo))/this.b;
    
this._yscale this.y_wert;
    
//this["button_"+i]._yscale = this.y_wert;
        
}
}

this["balken_"+i].onRollOut = function() {
    
this.dummy_mc.y_ziel balken_scale_from;
    
this.dummy_mc.onEnterFrame = function() {
    
this.y_wert this.y_wert+this.vy;
    
this.vy = (this.vy+((this.y_ziel-this.y_wert)/this.tempo))/this.b;
    
this._yscale this.y_wert;
    
//this["button_"+i]._yscale = this.y_wert;
        
}
    }

Angehängte Dateien
Dateityp: zip balkens.zip (7,2 KB, 2x aufgerufen)
djdwarf ist offline   Mit Zitat antworten
Alt 24-01-2006, 11:38   #8 (permalink)
°.oO°O.o°.oO.o°O
 
Benutzerbild von bamboocha
 
Registriert seit: Jun 2005
Ort: CH
Beiträge: 1.490
Irgendwie hat es da problem mit den Scripts auf den Button gegeben!
Habe mal alle Scripts drab genommen und ebenfalls in den ersten Frame geworfen... et voilà! Funktioniert (denke ich zumindest!? - die Traces bei RollOver und RollOut werden auf jeden Fall angezeigt!)

EDIT: Hat nicht an dem gelegen! Auch bei dir kommen die Traces! Allerdings nur auf einer ganz kleinen Fläche, da die Balken ja hinter den Buttons liegen! Naja... hast jetzt halt trotzdem das ganze Script beisammen!
Angehängte Dateien
Dateityp: zip balken_wobbel.zip (7,7 KB, 4x aufgerufen)
__________________
There is no way to happiness, happiness is the way! - Buddha

Geändert von bamboocha (24-01-2006 um 11:40 Uhr)
bamboocha ist offline   Mit Zitat antworten
Alt 24-01-2006, 11:54   #9 (permalink)
Hardstyle DJ
 
Benutzerbild von djdwarf
 
Registriert seit: Nov 2004
Ort: Hamburg
Beiträge: 622
Danke für deine Mühe! Leider funktioniert es immer noch nicht wie geplant.

Also, das Ganze soll, wenns fertig ist so aussehen, dass die Balken mit dem Button gezogen werden könnne. Bei Release "wobblen" sie zum festgelegten _xscale. Der Rollover der Balken (also nicht des Buttons) steuert die "wobble" _yscale, sie sollen also mit dem gleichen Effeckt auf y skaliert werden.

Öffne mal nochmal meine FLA und kopiere dieses Script in den ersten Frame

PHP-Code:
stop();

balken_1._xscale=5;
balken_1.wobble_to 340;


balken_2._xscale=5;
balken_2.wobble_to 120;


balken_3._xscale=5;
balken_3.wobble_to 80;




anzahl_balken 3;
balken_scale_from 100;
balken_scale_to 180;

//________________________________________


balken_1.dummy_mc.10
    
balken_1.dummy_mc.10
    
balken_1.dummy_mc.y_wert balken_1._yscale
    
balken_1.dummy_mc.y_ziel balken_1._yscale
    
balken_1.dummy_mc.b=1.5
    
balken_1.dummy_mc.tempo 2
     

balken_1.onRollOver = function() { 
    
balken_1.dummy_mc.y_ziel balken_scale_to
    
balken_1.dummy_mc.onEnterFrame = function() { 
    
balken_1.dummy_mc.y_wert balken_1.dummy_mc.y_wert+balken_1.dummy_mc.vy
    
balken_1.dummy_mc.vy = (balken_1.dummy_mc.vy+((balken_1.dummy_mc.y_ziel-balken_1.dummy_mc.y_wert)/balken_1.dummy_mc.tempo))/balken_1.dummy_mc.b
    
balken_1._yscale balken_1.dummy_mc.y_wert
    
button_1._yscale balken_1.dummy_mc.y_wert
        } 


balken_1.onRollOut = function() { 
    
balken_1.dummy_mc.y_ziel balken_scale_from
    
balken_1.dummy_mc.onEnterFrame = function() { 
    
balken_1.dummy_mc.y_wert balken_1.dummy_mc.y_wert+balken_1.dummy_mc.vy
    
balken_1.dummy_mc.vy = (balken_1.dummy_mc.vy+((balken_1.dummy_mc.y_ziel-balken_1.dummy_mc.y_wert)/balken_1.dummy_mc.tempo))/balken_1.dummy_mc.b
    
balken_1._yscale balken_1.dummy_mc.y_wert
    
button_1._yscale balken_1.dummy_mc.y_wert
        } 
    } 
//________________________________________ 
Damit funktioniert der erste Balken genau wie geplant, dann verstehst du was ich vorhabe Aber trotzdem nochmals danke für deine Mühe!!
djdwarf ist offline   Mit Zitat antworten
Alt 24-01-2006, 13:28   #10 (permalink)
°.oO°O.o°.oO.o°O
 
Benutzerbild von bamboocha
 
Registriert seit: Jun 2005
Ort: CH
Beiträge: 1.490
Freu dich! Hab den Fehler gefunden und es funktioniert!
Insgesamt zwei "_parent" und ein "dummy_mc" zu wenig!
Angehängte Dateien
Dateityp: zip balken_wobbel.zip (5,4 KB, 3x aufgerufen)
__________________
There is no way to happiness, happiness is the way! - Buddha
bamboocha ist offline   Mit Zitat antworten
Alt 24-01-2006, 13:43   #11 (permalink)
Hardstyle DJ
 
Benutzerbild von djdwarf
 
Registriert seit: Nov 2004
Ort: Hamburg
Beiträge: 622
Hey, super! Danke!

Aber verstehen tu ichs trotzdem nicht ....

wieso müssen bei der Schleifen Funktion die Pfade geändert werden, wärend bei der mühselig ausgeschriebenen Version die Pfade überall gleich bleiben ... also IMMER "balken_1.dummy_mc.*" .... *verwirrtdreinschau*
djdwarf ist offline   Mit Zitat antworten
Alt 24-01-2006, 13:53   #12 (permalink)
°.oO°O.o°.oO.o°O
 
Benutzerbild von bamboocha
 
Registriert seit: Jun 2005
Ort: CH
Beiträge: 1.490
Hmmm... ginge bei der verschachtelten sicherlich auch mit den "normalen" Pfaden... irgendwann könnte es aber mal Probleme damit geben, sofern du den Film wo reinlädst oder ähnliches... deshalb am besten anfangen immer alles möglichst relativ zu schreiben!
__________________
There is no way to happiness, happiness is the way! - Buddha
bamboocha ist offline   Mit Zitat antworten
Alt 24-01-2006, 14:10   #13 (permalink)
Hardstyle DJ
 
Benutzerbild von djdwarf
 
Registriert seit: Nov 2004
Ort: Hamburg
Beiträge: 622
So 100% rall ich immer noch net, warum sich das Script in diesem Fall genau so verhält, aaaaaaaaber .... was solls. Ich nehme es hin wie es ist und werde es in Zukunft beachten

Danke für deine Hilfe!
djdwarf 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 13:50 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele