Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 05-12-2007, 00:32   #1 (permalink)
Neuer User
 
Registriert seit: Jan 2006
Beiträge: 33
x Position von MovieClip steuern

Hallo zusammen,

ich probiere schon seit Stunden an einer eigentlich recht sipmplen Sache herum und finde einfach keine Lösung.... Vielleicht kann mir ja von euch jemand weiterhelfen.

Ich habe einen Movieclip (back), den ich per Klick auf Buttons nach links (Klick auf den "nach links Button") bzw. nach rechts ("nach rechts Button") steuern möchte.

Der Movieclip soll 3 mögliche Endpositionen haben:
Ganz links - Mitte - Ganz rechts.
Sprich, wenn sich der MC ganz rechts befindet und auf den "nach links Button" geklickt wird soll er sich in die Mitte bewegen und dort stehen bleiben. Erst nach erneutem Klick auf den "nach links Button" soll er sich ganz nach links bewegen.

Das mit dem nach links - rechts bewegen ist kein Problem. Aber ich schaff es einfach nicht, dass der MC auf der Mittelposition stehen bleibt.

Hier mein bisheriger Code für den "nach links button":

Code:
on(release){
	back.onEnterFrame=function(){
		
		if (back._x<1500){   // 1500 ist die äußerste Linksposition
		back._x+=20;			
		}		
	}
}
Für den "nach rechts button" wärs dann eben genau das selbe, nur eben mit Angabe der äußersten Rechtsposition (-500)

Die Mittlere _x Position, bei der die Bewegung stehen bleiben soll beträgt 500!

Hab noch nicht so viel in Action Script gemacht und steh deshalb absolut auf dem Schlauch...
Wie muss ich das Script verändern, damit der MC in der Mitte anhält?

Wäre super wenn mir jemand helfen kann.
Hoffe ich habe mein Problem verständlich genug geschildert....

Vielen Dank schonmal!
DieMoni
DieMoni ist offline   Mit Zitat antworten
Alt 05-12-2007, 07:18   #2 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Da musst du die if-Abfrage einfach ergänzen, bspw.:
PHP-Code:
on(release){
   
back.onEnterFrame=function(){
      if (
this._x >= && this._x <= 500){   
        
this._x+=20;            
      }
      else{
         
delete this.onEnterFrame;//löschen nicht vergessen!
      
}        
   }

  Mit Zitat antworten
Alt 05-12-2007, 09:08   #3 (permalink)
Neuer User
 
Registriert seit: Jan 2006
Beiträge: 33
Hey.
Danke schonmal!

Du meinst also so:

Code:
on(release){
   back.onEnterFrame=function(){
      
	  if (this._x <= 1500 && this._x <= 500){   //1500= äußerste Linksposition, 500 = Mitte!
           this._x+=20;            
          }
          
         else{
         delete this.onEnterFrame;
         }        
   }
}
?

Das funktioniert aber nicht.Wenn der Mc ganz rechts ist und man auf "nach links" klickt bleibt er zwar in der Mitte stehen. Aber von der Mitte kann man ihn dann nicht weiter nach links bewegen, da this._x ja dann 520 beträgt und somit die zweite Bedingung nichtmehr erfüllt ist....

Oder mache ich irgend einen doofen denkfehler und setze die Zahlen bzw die >=/<= Zeichen falsch ein?

Danke für jede weitere Hilfe!!
DieMoni
DieMoni ist offline   Mit Zitat antworten
Alt 05-12-2007, 10:28   #4 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Das war nur ein Beispiel, die richtigen Positionen musst du schon selbst setzen...
  Mit Zitat antworten
Alt 05-12-2007, 13:00   #5 (permalink)
Neuer User
 
Registriert seit: Jan 2006
Beiträge: 33
mmmh, ja das war mir klar, dass deine Werte nur ein Beispiel waren.

Ich hab ja auch meine eigenen Werte eingesetzt (1500 und 500), aber es funktioniert trotzdem nicht
DieMoni ist offline   Mit Zitat antworten
Alt 05-12-2007, 13:06   #6 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890

Du bewegst den MC doch gar nicht nach links sondern nur nach rechts (_x+=20)?
Verstehe also nicht, was du meinst.
Und die Abfrage <= 1500 && <= 500 ist auch Blödsinn, da 500 sowieso < 1500 ist.
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 05-12-2007, 13:15   #7 (permalink)
Achim Math.PI
 
Benutzerbild von bloba
 
Registriert seit: Jul 2001
Ort: cool Colonia
Beiträge: 11.642
nää, mann kann sich dat leve uch unnötig schwer moche


PHP-Code:
MovieClip.prototype.slideTo = function(whspeed) {
    
Math.floor(h);
    
Math.floor(w);
    
this.onEnterFrame = function() {
        
this._x += ((w-Math.round(this._x))/speed);
        
this._y += ((h-Math.round(this._y))/speed);
        if (
Math.round(this._y) == && Math.round(this._x) == w) {
            
delete this.onEnterFrame;
        }
    };
};
pos1 = {x:50x:50speed:20};
pos2 = {x:150x:20speed:5};
pos3 = {x:250x:10speed:10};
clip.slideTo(pos1.xpos1.ypos1.speed); 
__________________
gruß bloba

2 x onkel² b_d
bloba ist offline   Mit Zitat antworten
Alt 05-12-2007, 13:29   #8 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Zitat:
Zitat von bloba Beitrag anzeigen
nää, mann kann sich dat leve uch unnötig schwer moche
Genau :
PHP-Code:
import mx.transitions.Tween;
import mx.transitions.easing.*;
var 
pos1 = {x:50y:50speed:20};
new 
Tween(clip"_x"Strong.easeOutclip._xpos1.xpos1.speed);
new 
Tween(clip"_y"Strong.easeOutclip._ypos1.ypos1.speed); 
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 05-12-2007, 13:48   #9 (permalink)
tracer
 
Benutzerbild von andretti
 
Registriert seit: Jun 2004
Beiträge: 4.415
PHP-Code:
var mitte 250;
var 
links 0;
var 
rechts 500;
var 
speed 20;
nachlinks_btn.onPress = function(){
if(
sliding_mc._x == rechts){
sliding_mc.onEnterFrame = function(){
this._x -= speed;
if(
this._x <= mitte){
delete this.onEnterFrame;
this._x mitte;
}
}else if(
this._x == mitte){
this._x -= speed;
if(
this._x <= links){
delete this.onEnterFrame;
this._x links;
}
}
}
}
nachrechts_btn.onPress = function(){
if(
sliding_mc._x == links){
sliding_mc.onEnterFrame = function(){
this._x += speed;
if(
this._x >= mitte){
delete this.onEnterFrame;
this._x mitte;
}
}else if(
this._x == mitte){
this._x += speed;
if(
this._x >= rechts){
delete this.onEnterFrame;
this._x rechts;
}
}
}

so habe ich das verstanden;
kann man sicher noch abspecken, aber zum verständnis ist das so mal besser, denke ich;
__________________
Viola per Sempre
Alle Angaben ohne Gewehr!
trace your open mind in variables !
andretti
ActionScript Dictionary
andretti ist offline   Mit Zitat antworten
Alt 05-12-2007, 15:39   #10 (permalink)
Achim Math.PI
 
Benutzerbild von bloba
 
Registriert seit: Jul 2001
Ort: cool Colonia
Beiträge: 11.642
Zitat:
Zitat von Der Frager Beitrag anzeigen
Genau :
PHP-Code:
import mx.transitions.Tween;
import mx.transitions.easing.*;
var 
pos1 = {x:50y:50speed:20};
new 
Tween(clip"_x"Strong.easeOutclip._xpos1.xpos1.speed);
new 
Tween(clip"_y"Strong.easeOutclip._ypos1.ypos1.speed); 
nää- wenn schon die Königskklasse >

PHP-Code:
import com.caurina.transitions.Tweener;
Tweener.addTween(test, {_x:500_y:20time:5transition:"easeOutRegular"}); 
__________________
gruß bloba

2 x onkel² b_d
bloba 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:46 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele