Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 21-05-2004, 14:28   #1 (permalink)
Neuer User
 
Registriert seit: Jun 2002
Ort: Berlin
Beiträge: 35
Question Problem mit prototype in Flash7 :((

Hallo,
Ich bastle gerade an einer kleinen Webseite die Flash 7 benötigt.

Habe einen kleinen Prototypen für mein Menü gebastelt.

Sobald ich das swf als Flash 7 mit actionscript 1.0 exportiere, funktioniert mein Prototyp nicht mehr.
Ist mein Flash buggy oder das Actionscript.

Als Flash 6 Export funktioniert es wunderbar.
Gibt es ein gutes Tutorial zur neuen Syntax von Actionscript 2.0



Finde in der Hilfe keinen Beitrag dazu.
Wäre toll wenn mir jemand helfen könnte.

Dank schonmal,
__//quick\\__

ActionScript:
  1. movieclip.prototype.xWabber = function(x_end) {
  2.     multiplikator = 0.8;
  3.     ratio = 0.07;
  4.     var s;
  5.     this.s = Number(this.s*multiplikator)+Number((x_end-this._x)*ratio);
  6.     this._x += this.s;
  7. };
Angehängte Dateien
Dateityp: zip beispiel.fla.zip (36,9 KB, 5x aufgerufen)
__//quick\\__ ist offline   Mit Zitat antworten
Alt 21-05-2004, 14:48   #2 (permalink)
_______________
 
Benutzerbild von son yu
 
Registriert seit: Mar 2003
Ort: !Schnitzerland
Beiträge: 2.003
in as1 musst du das number weglassen..

schoene gruesse
__________________
ey… be cool!

Mac OS-X 10.5.6, Safari Version 4 Public Beta (5528.16), on PowerBook 12" G4 1,5 GHz,
1,25 GB RAM, FlashPlayer 9 is auch noch da, wenn ich Lust habe…
son yu ist offline   Mit Zitat antworten
Alt 21-05-2004, 14:53   #3 (permalink)
Neuer User
 
Registriert seit: Jun 2002
Ort: Berlin
Beiträge: 35
Sorry aber das wars auch nicht.
Wenn ich das Number weglasse funktionier es in Flash6 genauso wie vorher aber in Flash 7 tut es wieder gar nichts.
__//quick\\__ ist offline   Mit Zitat antworten
Alt 21-05-2004, 14:57   #4 (permalink)
_______________
 
Benutzerbild von son yu
 
Registriert seit: Mar 2003
Ort: !Schnitzerland
Beiträge: 2.003
du meinst, ohne number ist es as1 konform und funzt mit der export funktion und mit number ist es as2 konform und funzt mit dieser exportfunktion..

as1 funzt auch im flash 7 player
__________________
ey… be cool!

Mac OS-X 10.5.6, Safari Version 4 Public Beta (5528.16), on PowerBook 12" G4 1,5 GHz,
1,25 GB RAM, FlashPlayer 9 is auch noch da, wenn ich Lust habe…
son yu ist offline   Mit Zitat antworten
Alt 21-05-2004, 15:15   #5 (permalink)
Neuer User
 
Registriert seit: Jun 2002
Ort: Berlin
Beiträge: 35
Ich weiss das es eigentlich funktionieren müsste, aber es tut nicht.

Hast Du dir mal das beispiel.fla angeschaut?

Mit oder Ohne Number funktioniert es als Flash6 Export wunderbar, aber eben nicht als Flash 7 Export.
Alle anderen Funktionen laufen auch im Flash 7 Player.

Ich verstehs einfach nicht.
Ist doch ne ganz simple Funktion.
Kann es sein das ich mein zu bewegendes Objekt definieren muss?
__//quick\\__ ist offline   Mit Zitat antworten
Alt 21-05-2004, 15:18   #6 (permalink)
_______________
 
Benutzerbild von son yu
 
Registriert seit: Mar 2003
Ort: !Schnitzerland
Beiträge: 2.003
mit welcher as einstellung veroeffentlichst du den im f7 player?

schoene gruesse
__________________
ey… be cool!

Mac OS-X 10.5.6, Safari Version 4 Public Beta (5528.16), on PowerBook 12" G4 1,5 GHz,
1,25 GB RAM, FlashPlayer 9 is auch noch da, wenn ich Lust habe…
son yu ist offline   Mit Zitat antworten
Alt 21-05-2004, 15:30   #7 (permalink)
Neuer User
 
Registriert seit: Jun 2002
Ort: Berlin
Beiträge: 35
in AS1
__//quick\\__ ist offline   Mit Zitat antworten
Alt 21-05-2004, 22:46   #8 (permalink)
Neuer User
 
Registriert seit: Apr 2004
Ort: Kalifornien
Beiträge: 239
Es gibt 2 Moeglichkeiten warum es nicht klappt:

1. this._x ist nicht definiert zum Zeitpunkt wenn es gebraucht wird, dann ist in Flash 7 die ganze Zeile nicht definiert.

2. x_end ist nicht definiert, dann ist die Zeile auch nicht definiert. Mach mal trace fuer beide Werte gleich am Anfang.

Hier ist ein Tutorial was anders ist in Flash 7

http://flashscript.biz/MX2004/bugs/MX_MX2004.html
__________________
Es war schon immer etwas teurer, einen guten Flash Film zu machen.
www.flashscript.biz
cancerinform ist offline   Mit Zitat antworten
Alt 22-05-2004, 12:14   #9 (permalink)
Gib her, ich mach das!
 
Registriert seit: Jul 2003
Ort: Karlsruhe/Kassel
Beiträge: 270
ActionScript:
  1. var s;
  2.         this.s = Number(this.s*multiplikator)+Number((x_end-this._x)*ratio);
durch this.s*multiplikator wird es immer NaN! Denn du initialisiert s nicht. Und durch den ersten Aufruf bleibt s immer keine Zahl.
Versuchs mit var s=0;
Dr.Atom ist offline   Mit Zitat antworten
Alt 22-05-2004, 23:33   #10 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
ch lese hier immer
this.s; ???? was soll denn this.s sein und wozu
var s; ????

und ich sehe hier wieder mal 300 millionen bilder auf der hzl...argghh...
die funktionen verfallen irgendwann...objekte existieren noch nicht oder nicht mehr...
warum tut ihr euch das an...?

prinzipiell existiert ein gewaltiger unterschied zwischen
var s;
und
this.s


zumal du erst ne var deklarierst und dann nicht mehr benutzt in der funktion...


greetz

kelor
kelor ist offline   Mit Zitat antworten
Alt 23-05-2004, 07:52   #11 (permalink)
[Matthias K.] - Moderator
 
Benutzerbild von Madokan
 
Registriert seit: Jun 2001
Ort: Berlin/Germany - and the hole World !
Beiträge: 9.971
@__//quick\\__: Ich erlös dich mal. Was hier steht kannst auch für zukünftige prototype-Methoden in Flash MX 2004 einsetzen bzw. solltest du berücksichtigen! In Flash MX waren viele von uns (Flash-Entwickler) einfach zu faul sauber zu coden.

Lösung
ActionScript:
  1. /*
  2. 1. Schreibweise movieclip - ist Syntaktisch nicht korrekt. Muss lauten:
  3. MovieClip
  4. 2. Fehler - der Prototype xWabber war unsauber gescoped!
  5. (this ist elementar - nicht aus reiner Schreibfaulheit raus lassen)
  6. Hinweis: Man kann hierfür auch with(this) {...} einsetzen. Empfehle ich
  7. persönlich jedoch nicht.
  8. Bsp.:
  9. MovieClip.prototype.xWabber = function(x_end, multiplikator, ratio) {   
  10.     with (this) {      
  11.             if (s == undefined) this.s = 0;  
  12.             multiplikator = multiplikator;
  13.             ratio = ratio;     
  14.             s = s*multiplikator+ (x_end-_x)*ratio;
  15.             _x += s;
  16.     }
  17. };
  18. Aufruf
  19. mc.xWabber(300,0.8,0.07);
  20. 3. var s; - Die lokale Variable bringt hier nichts! Du musst dafür sorgen, dass
  21. this.s initialisert wird und zwar genau einmal beim aufruf deiner Methode xWabber.
  22. 4. Optimierung die beiden Werte Multiplikation und Ratio würde ich als
  23. Parameter übergeben.
  24. 5. Solltest du auf multiplikator und ratio als Eigenschaften des MovieClips
  25. Prototype verzichten können wird das ganze sogar noch kompakter.
  26. Bsp.:
  27. MovieClip.prototype.xWabber = function(x_end, multiplikator, ratio) {   
  28.         if (this.s == undefined) this.s = 0;
  29.         this.s = Number(this.s*multiplikator)+Number((x_end-this._x)*ratio);
  30.         this._x += this.s;
  31. };
  32. Aufruf:
  33. mc.xWabber(300,0.8,0.07);
  34. 6. Der Einsatz von Number() ist optional!
  35. */
  36.  
  37. MovieClip.prototype.xWabber = function(x_end, multiplikator, ratio) {   
  38.         // Initialisierung (falls nötig)
  39.         if (this.s == undefined) this.s = 0;
  40.        
  41.         // Parameterzuweisung
  42.         this.multiplikator = multiplikator;
  43.         this.ratio = ratio; 
  44.        
  45.         // Berechnung
  46.         this.s = this.s*this.multiplikator+ (x_end-this._x)*this.ratio;
  47.        
  48.         // Umsetzung auf den jeweils betroffene MovieClip-Instanz
  49.         this._x += this.s;
  50. };
  51.  
  52.  
  53. this.onEnterFrame = function() {   
  54.     mc.xWabber(300,0.8,0.07);   
  55. }

Hinweis
In deiner Beispiel ZIP. Hast übrigens gar keinen Prototype eingesetzt, da steht nur eine function xWabber. Ich gehe jedoch davon aus, dass du mit der prototype-Methode xWabber besser fährst. Achja und ganz nebenbei funktioniert die Methode auch in Flash MX - ist halt nur von den kleinen Mankos befreit worden.


Liebe Grüsse
Matze K.
Angehängte Dateien
Dateityp: zip prototypebsp.zip (13,3 KB, 4x aufgerufen)
Madokan ist offline   Mit Zitat antworten
Alt 23-05-2004, 09:33   #12 (permalink)
Flashaholic
 
Benutzerbild von atothek
 
Registriert seit: Feb 2003
Ort: Berlin
Beiträge: 1.459
oh mann nicht schlecht privat unterricht bei Matze alle Achtung das ist schon was
__________________
TVNEXT Solutions
atothek ist offline   Mit Zitat antworten
Alt 23-05-2004, 10:04   #13 (permalink)
[Matthias K.] - Moderator
 
Benutzerbild von Madokan
 
Registriert seit: Jun 2001
Ort: Berlin/Germany - and the hole World !
Beiträge: 9.971
@atothek: Hab den Thread per Zufall gefunden und dachte mir da muss unbedingt aufgeklärt werden.

In Flash MX 2004 dürfen wir in AS nicht mehr rum schludern.

Liebe Grüsse
Matze K.
Madokan ist offline   Mit Zitat antworten
Alt 23-05-2004, 10:24   #14 (permalink)
Flashaholic
 
Benutzerbild von atothek
 
Registriert seit: Feb 2003
Ort: Berlin
Beiträge: 1.459
Wohl wahr wohl wahr wurde auch Zeit meiner Meinung nach !!! Endlich hat die Schludrigkeit ein Ende und das Fehlersuchen fällt leichter alles im allen ein Segen nicht zuletzt dank as2! es gibt wie immer einige Mängel aber da ist MM ja nicht der Einzige denn Bugs bleiben nunmal nie aus noch nichmal bei reinen Flashprojecten die ja um einiges kleiner sind als flash ansich zu proggen
__________________
TVNEXT Solutions
atothek ist offline   Mit Zitat antworten
Alt 23-05-2004, 11:09   #15 (permalink)
[Matthias K.] - Moderator
 
Benutzerbild von Madokan
 
Registriert seit: Jun 2001
Ort: Berlin/Germany - and the hole World !
Beiträge: 9.971
@atothek: Sehe ich genauso pragmatisch - von Bugs ist nicht nur MM bet., da wo Menschen sind werden Fehler gemacht! Was AS 2.0 bet. hat auch MM noch einiges ins Lot zu bringen, aber der richtige Weg ist eingeschlagen und wenn man sich Hochsprachen, wie C++/Java betrachtet (die ich im übrigens sehr schätze) und deren IDE's, dann wird man feststellen auch hier gibts noch zahlreiche Bugs und Probleme - wenn dem nicht so wäre, dann würde ich auch ehrlich gesagt stutzig werden - nobody is perfect!

Liebe Grüsse
Matze K.
Madokan 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 04:40 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele