Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 04-05-2005, 00:28   #1 (permalink)
Neuer User
 
Registriert seit: May 2004
Ort: Sydney
Beiträge: 29
bewegen per AS

Ich versuche gerade mein eingerosstetes AS Wissen wieder in Schwung zu bringen und moechte einen MC mit dem AS von Robert Penner bewegen.
Ich moechte bei einem Klick auf den Button den MC bewegen, dazu hab ich folgendes Script geschrieben:

Code:
// quadratic easing out - decelerating to zero velocity
Math.easeOutQuad = function (t, b, c, d) {
	return -c *(t/=d)*(t-2) + b;
};

function bewegen(){
	//delete table.onEnterFrame;
	table.onEnterFrame = function(){
		if(ziel="home"){
			this._x= Math.easeInQuad(++frame,table._x,100,400);
		}
	}
}
Beim Klick auf den btn wird dann einfach die Methode bewegen() aufgerufen.
Kann das ueberhaupt funktionieren (bei mir tut es das nicht)? Fuer mich sah das im ersten moment logisch aus, er sagt mir jedoch als Felhermeldung, dass er die Methode "easInQuad" nicht kennt.
Anyone ist offline   Mit Zitat antworten
Alt 04-05-2005, 01:42   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.321
"..versuche gerade mein eingerosstetes AS Wissen wieder in Schwung zu bringen.."
brille putzen würde für den anfang schon mal langen:

Math.easeOutQuad und Math.easeInQuad
und
if(ziel = "home")
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 04-05-2005, 02:32   #3 (permalink)
Neuer User
 
Registriert seit: May 2004
Ort: Sydney
Beiträge: 29
Zitat:
Zitat von hgseib
"..versuche gerade mein eingerosstetes AS Wissen wieder in Schwung zu bringen.."
brille putzen würde für den anfang schon mal langen:

Math.easeOutQuad und Math.easeInQuad
und
if(ziel = "home")
ich habe ausversehen den falschen Teil des Codes gepostet und ich bezweifle das es viel bringt vor und nach dem Gleichheitszeichen eine leerstelle zu setzen (wenn du mir das sagen wolltest).

Hier der komplette Part:

Code:
// quadratic easing in - accelerating from zero velocity
// t: current time, b: beginning value, c: change in value, d: duration
// t and d can be in frames or seconds/milliseconds
Math.easeInQuad = function (t, b, c, d) {
	return c*(t/=d)*t + b;
};

// quadratic easing out - decelerating to zero velocity
Math.easeOutQuad = function (t, b, c, d) {
	return -c *(t/=d)*(t-2) + b;
};

function bewegen(){
	delete table.onEnterFrame;
	table.onEnterFrame = function(){
		if(ziel=="home"){
			
			this._x= Math.easeInQuad(++frame,table._x,100,400);
		}
	}
}
Anyone ist offline   Mit Zitat antworten
Alt 04-05-2005, 03:26   #4 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.321
"..und ich bezweifle das es viel bringt vor und nach dem Gleichheitszeichen eine leerstelle zu setzen.."
halt mich doch bitte nicht für blöd! wo es hakt hatte ich dir fett markiert.

was soll ziel sein, das du mit einem text vergleichst!?
sowas z.b. würde sinn machen (wenn _root.home die zielposition darstellt):
ActionScript:
  1. function easeInQuad(t, b, c, d) {
  2.     return c*(t /= d)*t+b;
  3. }
  4. function bewegen() {
  5.     _root.table.frame = 0;
  6.     _root.table.onEnterFrame = function() {
  7.         if (this._x<_root.home) {
  8.             this._x = easeInQuad(++this.frame, this._x, 100, 400);
  9.         } else {
  10.             delete this.onEnterFrame;
  11.         }
  12.     };
  13. }
  14. // zum testen
  15. home = 500;
  16. bewegen();
kann aber schief gehen, wenn table rechts von 500 steht. sollte man vorher testen. ansonsten wäre sowas noch eine abbruchbedingung:
if (this.frame <100)
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (04-05-2005 um 04:11 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 04-05-2005, 04:05   #5 (permalink)
Neuer User
 
Registriert seit: May 2004
Ort: Sydney
Beiträge: 29
bei klick auf den btn bekommt die variable ziel den inhalt home.
nach der logik die ich verfolge, wuerde beim aufruf der funktion bewege() der mc table in x richtung verschoben.
es kann natuerlich auch sein, dass ich in eine total falsche richtung blicke.
Anyone ist offline   Mit Zitat antworten
Alt 04-05-2005, 04:16   #6 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.321
in anführungszeichen gesetzt ist das ein text. du vergleichst die variable ziel mit einem text. wann soll die bewegung enden? wann wird die variable ziel geändert?
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (04-05-2005 um 04:59 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 04-05-2005, 04:33   #7 (permalink)
Neuer User
 
Registriert seit: May 2004
Ort: Sydney
Beiträge: 29
die variable ziel wird beim klick auf den button geaendert.
das mit dem enden der bewegung hab ich noch nicht ganz raus, da mir die function von robert penner noch nicht 100% klar ist.
aber von prinzip her soll es so sein, dass ich ein movieclip "table" habe, wenn ich dann auf den button klicke bekommt die variable "ziel" den text "home", danach wird bewegen() ausgefuehrt und der movieclip table wird auf der x achse verschoben.
Anyone ist offline   Mit Zitat antworten
Alt 04-05-2005, 04:57   #8 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.321
ist nur ne unschöne verschachtelte schreibweisse, sonst nichts. für AS1:
ActionScript:
  1. Math.easeInQuad = function (t, b, c, d) {
  2.         t=t/d;
  3.         return c*t*t + b;
  4. };
wie man Math bei AS2 erweitert, da sollen sich andere die köpfe zusammenschlagen. finde es hierbei eh unpassend. einfache function geht bestens.

"..die variable "ziel" den text "home", danach wird bewegen() ausgefuehrt.."
davon ist mindestens eins überflüssig.

wie deine bewegung abgebrochen werden kann hatte ich ja schon geschrieben: teste auf endposition oder auf bewegungsdauer. auf einen kommando-text zu testen finde ich unpassend. aber bitte: jeder wie er will.
so, muss langen für heute ;-)
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (04-05-2005 um 05:06 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 04-05-2005, 06:33   #9 (permalink)
Neuer User
 
Registriert seit: May 2004
Ort: Sydney
Beiträge: 29
danke fuer deine hilfe, werd mich spaeter mal dran versuchen.
Anyone 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 19:59 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele