Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 26-11-2007, 17:24   #1 (permalink)
Neuer User
 
Registriert seit: Feb 2004
Ort: Aschaffenburg
Beiträge: 17
Question Bewegung mit Actionscript

Hallo,

ich würde gerne einen Moveclip dazu bringen sich mit Actionscript von seinem Standpunkt aus (wenn die Maus darüber ist) an einen bestimmten Punkt nach rechts zu bewegen. Sobald die Maus nicht mehr darüber ist soll er sich wieder zum Ausganspunkt zurück bewegen.

Kann mir dabei jemand helfen? Bin nicht so der Programmier-Typ, habe nur simple Grundkenntnisse davon.

Tausend Dank schon mal im Vorraus.

tazz
tazz ist offline   Mit Zitat antworten
Alt 26-11-2007, 18:14   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.321
probier mal so:
- eine neue fla anlegen
- ein movieclip anlegen
- dem auf der bühne im eigenschaftenfenster einen namen geben. z.b. test
- jetzt oben in die zeitleiste klicken und das actionscript fenster öffnen
- dort reinscheiben:
trace(test);
trace(test._x);
- und menü steuerung/film testen
die swf wird erzeugt (da bewegt sich noch nichts)
das ausgabenfenster öffnet sich und es werden zwei werte ausgegeben.

so wie man z.b. die _x position von test auslesen kann, so kann man die auch ändern. schreib mal ins actionscript fenster:
test._x=200;
test._y=150;
und wieder steuerung/film testen
das mc text muss sich jetzt auf dieser position befinden.
soweit geklappt?
dann das ganze in bewegung:
Code:
test.onEnterFrame=function(){
  test._x+=2;
}
damit sollte test nach rechts verschwinden.
onEnterFrame wird ständig ausgeführt und test._x+=2 bedeutet, das jedesmal 2 zur x-position addiert wird.
mehr:
Code:
test.speed=2;
test.onEnterFrame=function(){
  this._x+=this.speed;
  if (this._x>500) this.speed=-this.speed;
  if (this._x<50)  this.speed=-this.speed;
}
jetzt hat test eine variable namens speed und der speed ändert sich (mal plus mal minus), wenn die angegebenen grenzen überschritten sind.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (26-11-2007 um 18:17 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 26-11-2007, 18:47   #3 (permalink)
Neuer User
 
Registriert seit: Feb 2004
Ort: Aschaffenburg
Beiträge: 17
Sehr gut, vom Prinzip her ist das genau was ich wollte!

Jetzt würde ich noch gerne wissen wie ich es hin bekomme das sich der Moveclip (test) über hitTest eines anderen Moveclips (hit area) nach rechts bewegt, am Ende stoppt und wenn ich mit der Maus vo "hit area" wegrolle "test" wieder in die Ausgangsposition zurück fährt.

Danke, tazz
tazz ist offline   Mit Zitat antworten
Alt 27-11-2007, 17:28   #4 (permalink)
Neuer User
 
Registriert seit: Feb 2004
Ort: Aschaffenburg
Beiträge: 17
Hallo habe jetzt folgendes Script geschrieben was auf dem sich zu bewegenden MC befindet:

( Auf Bild eins steht noch: test.speed=50; )

onClipEvent (enterFrame){
if (_root.area.hitTest(_root._xmouse, _root._ymouse, true))
this._x+=this.speed;
if (this._x>450) {
this.speed=-this.speed;
}
if (this._x<0) {
this.speed=-this.speed;
}
if (this._x==450) {
this.speed=-0;
}
}

Das Script bewirkt das, wenn man mit der Maus über dem MC area ist, sich das test Objekt nach rechts bewegt und bei 450 px stoppt.
Jetzt würde es gerne so hin bekommen das wenn ich nicht mehr mit der Maus über dem MC area bin das test MC wieder zurück "fährt" und bei 0 px stoppt.

Kann mir dabei jemand helfen?

Vielen Dank!
tazz ist offline   Mit Zitat antworten
Alt 28-11-2007, 15:40   #5 (permalink)
Neuer User
 
Registriert seit: Feb 2004
Ort: Aschaffenburg
Beiträge: 17
So, habe es jetzt so halbwegs hinbekommen das sich das Objekt - wenn die Maus über der "area" ist - nach rechts bewegt und bei 450 px stoppt.
Sobald die Maus nicht mehr über "area" ist, bewegt sich das Objekt zurück und stoppt bei 0 px. Leider stoppt das Objekt nicht wirklich bei 450 px sondern zuckt herum, als würden sich die Bedingungen in die Quere kommen.

Könnte mir bitte jemand helfen, das dass Objekt nicht mehr zuckt, sondern einfach stehen bleibt und wenn die Maus nicht mehr über "area" sich zurück zu 0 px begibt?

Ist bestimmt nur ein kleiner Denkfehler, aber ich bin wie gesagt kein Programmier-Crack!

Vielen Dank!

Das Script sieht so aus:
Auf Bild eins steht: test.speed=50;

Auf den Test Objekt steht:

onClipEvent (enterFrame){
if (_root.area.hitTest(_root._xmouse, _root._ymouse, true) && this._x<450){
this._x+=this.speed;
} else if (this._x>0) {
this._x-=this.speed; }
}

Geändert von tazz (28-11-2007 um 15:53 Uhr)
tazz ist offline   Mit Zitat antworten
Alt 29-11-2007, 15:07   #6 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.321
habe wenig zeit, deshalb erst jetzt eine reaktion:

das da:
this.speed=-this.speed;
dreht die geschwindigkeit um!

bei deiner lösung kann es mehrere undefinierte zustände geben:
if (_root.area.hitTest(_root._xmouse, _root._ymouse, true) && this._x<450){
this._x+=this.speed;
} else if (this._x>0) {
this._x-=this.speed; }
}

was ist, wenn weder die eine noch die andere bedingung erfüllt ist?
was, wenn hitTest zutrifft, aber nicht x<450?

du solltest klare eindeutige abfragen erstellen und wenn die zutreffen, dann die bewegungsrichtung drehen. dabei muss sicher gestellt sein, das beim nächsten test nicht nochmal umgedreht wird (notfalls das objekt aus dem hitbereich raus positionieren).
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib 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 20:11 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele