Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 08-09-2005, 16:02   #1 (permalink)
Neuer User
 
Registriert seit: Sep 2004
Beiträge: 94
befehl ausführen erst wenn anderer befehl fertig ausgeführt wurde

hallo :-)

eine weltkarte.. klick auf europa und europa vergrößert sich mit:
ActionScript:
  1. _root.btn_01_siz.onEnterFrame = function() {       
  2.     _root.btn_01_siz._x += (-this._x+412)*.7;
  3.     _root.btn_01_siz._y += (-this._y+205)*.7;
  4.     _root.btn_01_siz._xscale += (-this._xscale+170)*.7;
  5.     _root.btn_01_siz._yscale += (-this._yscale+170)*.7;
  6. }
im vergrößerten europa-mc auf btn_close gedrückt, dann soll europa wieder kleiner werden mit:
ActionScript:
  1. on (release) {
  2.     _root.btn_01_siz.onEnterFrame = function() {       
  3.         _root.btn_01_siz._x += (-this._x+401.6)*.8;
  4.         _root.btn_01_siz._y += (-this._y+101)*.8;
  5.         _root.btn_01_siz._xscale += (-this._xscale+32.6)*.8;
  6.         _root.btn_01_siz._yscale += (-this._yscale+32.6)*.8;
  7.             _root.btn_close._visible=false;
  8.             _root.btn_02._alpha=100;
  9. }
  10. }
mein problem:
ich muss zu frame 1 springen sobald europa fertig verkleinert ist und wieder seine position eingenommen hat.

wenn ich jedoch im zweiten AS (siehe oben) gotoAndStop(1) einfüge, dann spingt er sofort zu frame 1 und die verkleinerung geht mit einem rück vor sich.. sollte aber laut script schön smooth sein..

bitte um hilfe.

danke + lg,
bodissimo
__________________
greetz bodi-bodissimo
bodissimo ist offline   Mit Zitat antworten
Alt 08-09-2005, 17:21   #2 (permalink)
nobody is perfect
 
Benutzerbild von Decrone
 
Registriert seit: Apr 2002
Ort: Bremen
Beiträge: 3.049
Hi

lass Dir mal _xscale tracen und schalte mal den Bandbreiten-Profiler mit ein (Nur für gedacht um zu sehen das er auf Frame1 springt oder lass Dir this._parent._currentframe mit austracen) Probier es mal mit dieser Variante! Leicht Modifiziert habe ich Dein Script auch
Und lösche den oef wenn er nicht mehr gebraucht wird. Den sollte man immer löschen, dass schont die Rechnerleistung!

ActionScript:
  1. var maxGroesse = 170;
  2. var minGroesse = 32.6;
  3.  
  4. btn_01_siz.onRelease = function(){
  5.     this.onEnterFrame = function() {
  6.         this._x += (-this._x+412)*.7;
  7.         this._y += (-this._y+205)*.7;
  8.         this._xscale += (-this._xscale+this._parent.maxGroesse)*.7;
  9.         this._yscale += (-this._yscale+this._parent.maxGroesse)*.7;
  10.         if(this._xscale == this._parent.maxGroesse){
  11.             delete this.onEnterFrame;
  12.             trace("oef wurde gelöscht!")
  13.         }
  14. }
  15. }
  16. btn_close.onRelease = function(){
  17. this._visible=false;
  18.         this._parent.btn_02._alpha=100;
  19.     this._parent.btn_01_siz.onEnterFrame = function() {
  20.         this._x += (-this._x+401.6)*.8;
  21.         this._y += (-this._y+101)*.8;
  22.         this._xscale += (-this._xscale+this._parent.minGroesse)*.8;
  23.         this._yscale += (-this._yscale+this._parent.minGroesse)*.8;
  24.                 if(this._xscale == this._parent.minGroesse){
  25.             delete this.onEnterFrame;
  26.             trace("oef wurde gelöscht! und _root-Zeitleiste spring auf Frame1")
  27.             this._parent.gotoAndStop(1);
  28.         }
  29.     }
  30. }
Im Anhang kannste sehen was passiert!

Gruss Dec
Angehängte Dateien
Dateityp: zip bodissimo.zip (2,6 KB, 5x aufgerufen)
__________________
FF Unterstützen! Erste Hilfe! häufig gestellten Fragen
...................... ............... ................................

Geändert von Decrone (08-09-2005 um 18:55 Uhr)
Decrone ist offline   Mit Zitat antworten
Alt 08-09-2005, 19:13   #3 (permalink)
nobody is perfect
 
Benutzerbild von Decrone
 
Registriert seit: Apr 2002
Ort: Bremen
Beiträge: 3.049
Oder halt die kurze Variante...

Copy & Paste
ActionScript:
  1. MovieClip.prototype.scale = function(scale_groesse, xpos, ypos, speed, obj, aktion){
  2.     obj._visible = aktion;
  3.     this.onEnterFrame = function() {
  4.         this._x += (-this._x+xpos)*speed;
  5.         this._y += (-this._y+ypos)*speed;
  6.         this._xscale += (-this._xscale+scale_groesse)*speed;
  7.         this._yscale += (-this._yscale+scale_groesse)*speed;
  8.         if(this._xscale == scale_groesse){
  9.             delete this.onEnterFrame;
  10.             trace("oef gelöscht");
  11.             !aktion ? this._parent.gotoAndStop(1) : null;
  12.         }
  13.     }
  14. }   
  15. this.btn_01_siz.onRelease = function(){
  16.     this.scale(170, 412, 205, .7, this._parent.btn_close, true);
  17. }
  18.  
  19. this.btn_close.onRelease = function(){
  20.     this._parent.btn_01_siz.scale(32.6, 401.6, 101, .8, this, false);
  21.     this._parent.btn_02._alpha=100;
  22. }

Gruss Dec
__________________
FF Unterstützen! Erste Hilfe! häufig gestellten Fragen
...................... ............... ................................
Decrone ist offline   Mit Zitat antworten
Alt 09-09-2005, 08:34   #4 (permalink)
Neuer User
 
Registriert seit: Sep 2004
Beiträge: 94
morgen,

also ich danke dir erstmals für deine hilfe, das bringt mich mit meinem verständniss um einiges weiter, jedoch..

hätte ich vielleicht besser schildern müssen.

es gibt noch südamerika, nordamerika, lateinamerika, china usw. als solche buttons wie europa.

alle buttons (länder) skalieren unterschiedlich in maxGroesse.

zum aufbau:
frame 1: alle btn sind als einfache btn auf bühne, wenn klick auf einen btn (zb. btn_europa), dann goFrame 11.

frame 11: neuer keyframe und btn_europa hat neuen instanznamen "btn_europa_siz". btn_europa_siz wird nun vergrößert und es sind im btn viele kleine btn's.

wenn nun klick btn_close, dann soll btn_europa_siz verkleinert werden und wenn fertig verkleinert, dann goFrame 1.

das soll jetzt mit allen anderen btn's (länder) möglich sein.

hoffe, das ist verständlich :-)
lg
__________________
greetz bodi-bodissimo
bodissimo 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 17:10 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele