Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 25-02-2004, 09:24   #1 (permalink)
hmmmmm...
 
Benutzerbild von kenichi
 
Registriert seit: Feb 2004
Ort: deutschland
Beiträge: 112
Question 3D Tween

Hallo Liebe Gemeinde,
(klingt irgendwie Religioes )

ich habe hier ein kleines Problem. Eigentlich ist es ein generelles Problem. es ist allerdings bei meiner selbstgeschriebenen Tween Funktion aufgetreten.
Und Zwar wollte ich in dieser Funktion mit "this" eine andere Funktion der gleichen Klasse aufrufen. Klappte allerdings nicht. War angeblich undefined.

Mit einem Notbehelf gehts....
Hier einmal der Code der Funktion:

ActionScript:
  1. Render.prototype.TweenTo = function(engine,obj,pt)
  2. {
  3.     var tmp = pt.Minus(obj.center);
  4.     tmp.DivideBy(25);
  5.    
  6.     var i=0;
  7.    
  8.     function Tween()
  9.     {
  10.         i++;
  11.         if(i==25) clearInterval(timer);
  12.         _root[engine].Move(obj,tmp);
  13.         _root[engine].Draw();
  14.     }
  15.    
  16.     var timer = setInterval(Tween,10);
  17. }

Kann mir jemand sagen woran das liegt dass man "this" nicht benutzen kann?

Danke im Voraus und Gruss
kenichi
kenichi ist offline   Mit Zitat antworten
Alt 25-02-2004, 10:00   #2 (permalink)
hmmmmm...
 
Benutzerbild von kenichi
 
Registriert seit: Feb 2004
Ort: deutschland
Beiträge: 112
Hallo nochmal,

wollte noch den link posten, wo man sich den Tween mal anschaun kann, wie er dann mit diesem ohne "this" Notbehelf funzt...
Beispiel

Waere echt cool, wenn mich mal jemand aufklaeren koennte.

Danke und Gruss
kenichi
kenichi ist offline   Mit Zitat antworten
Alt 26-02-2004, 11:16   #3 (permalink)
hmmmmm...
 
Benutzerbild von kenichi
 
Registriert seit: Feb 2004
Ort: deutschland
Beiträge: 112
hallo, nochmal ich...
fuer die, die es interessiert und bisher auch nicht wussten woran es lag...
der fehler liegt darin, das in der funktion Tween() das "this" object undefindes ist...
man kann sich so abhilfe schaffen...

ActionScript:
  1. Render.prototype.TweenTo = function(obj,pt)
  2. {
  3.         var engine = this;
  4.  
  5.         var tmp = pt.Minus(obj.center);
  6.         tmp.DivideBy(25);
  7.        
  8.         var i=0;
  9.        
  10.         function Tween()
  11.         {
  12.                 i++;
  13.                 if(i==25) clearInterval(timer);
  14.                 engine.Move(obj,tmp);
  15.                 engine.Draw();
  16.         }
  17.        
  18.         var timer = setInterval(Tween,10);
  19. }

"var engine = this;" ist dabei die neuerung...
das wars schon. danke an alle die sich den kopf zerbrochen haben...

gruss,
kenichi
kenichi ist offline   Mit Zitat antworten
Alt 26-02-2004, 11:58   #4 (permalink)
Neuer User
 
Registriert seit: Feb 2004
Beiträge: 53
sehr geil - gefällt mir!

hast du übrigens schon mal beide würfel gleichzeitig
nach vorne geholt?
da muß noch die automatische rückführung eingebaut
werden, aber das hattest du sicherlich schon vor!

ansonsten sieht das schon ganz klasse aus!

gruß,

quirin
ovion 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 21:53 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele