Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 18-08-2005, 10:20   #1 (permalink)
FBx
 
Benutzerbild von xlive
 
Registriert seit: May 2003
Beiträge: 968
prototype einsetzen

hallo,

habe einen movie mit 8 buttons, mit deren hilfe man in veschiedene kapitel der .flv springen kann.
jetzt ist das script der button fast identisch. um das ganze speicher-(platz) schonender zu schreiben habe ich mal das prototype-objekt eingesetzt.
ist die verwendung so politisch korrekt?
ActionScript:
  1. //Alte Version
  2. //--- 8x Buttons
  3. // Marke 1 Schalter
  4. m1_btn.onRelease = function() {
  5.     ladeswf();
  6.     _level0.sprungmarke = 0;
  7.     _level0.dauer = 12;
  8.     btncoloroff();
  9.     this.aktiv._alpha = 60;
  10. };
  11. // Marke 2 Schalter
  12. m2_btn.onRelease = function() {
  13.     ladeswf();
  14.     _level0.sprungmarke = 12;
  15.     _level0.dauer = 25;
  16.     btncoloroff();
  17.     this.aktiv._alpha = 60;
  18. };
  19. // Marke 3 Schalter
  20. m3_btn.onRelease....
  21. :                             
  22. // Marke 4Schalter
  23. m4_btn.onRelease....                             
  24.     :
  25.     :
  26.     :
  27. //----------------------------------
  28. btncoloroff = function () {
  29.     for (var i = 1; i <= 8; i++) {
  30.         _root["m" + i + "_btn"].aktiv._alpha = 0;
  31.     }
  32. //swf wird geladen
  33. ladeswf = function () {
  34.     loadMovie("film2.swf", 2);
  35. };
ActionScript:
  1. //Aktuelle Version
  2. //
  3. //--- 8x Buttons
  4. // Marke 1 Schalter
  5. m1_btn.onRelease = function() {
  6.     arbeit(0, 12, this, 60);
  7. };
  8. // Marke 2 Schalter
  9. m2_btn.onRelease = function() {
  10.     arbeit(25, 37, this, 60);
  11. };
  12. // Marke 3 Schalter
  13. m3_btn.onRelease....
  14. :                         
  15. // Marke 4 Schalter
  16. m4_btn.onRelease....                             
  17.     :
  18.     :
  19.     :
  20. MovieClip.prototype.arbeit = function(sm, da, btn, al) {
  21.     //trace(sm+" "+" "+da+" "+btn+" "+al);
  22.     _level0.sprungmarke = sm;
  23.     _level0.dauer = da;
  24.     loadMovie("film2.swf", 2);
  25.     //--
  26.     for (var i = 1; i<=8; i++) {
  27.         _root["m"+i+"_btn"].aktiv._alpha = 0;
  28.     }
  29.     btn.aktiv._alpha = al;
  30.     filmstatus = 0;
  31. };
gruß xlive

Geändert von xlive (18-08-2005 um 10:26 Uhr)
xlive ist offline   Mit Zitat antworten
Alt 18-08-2005, 10:48   #2 (permalink)
Farbe ist Luxus
 
Benutzerbild von ludabruda
 
Registriert seit: May 2003
Ort: Köln
Beiträge: 2.405
Hi,

ob man hierfür gleich einen Prototype braucht, kann man anzweifeln, eine Schleife würde es hier wohl ebenfalls tun.

Außerdem ist dein Prototype in diesem Falle auch kein wirklicher, da du
a) Buttons verwendest, die mit einem MovieClip.prototype nichts anfangen können
b) bei jedem Button dieselbe Funktion aufrufst, nur mit unterschiedlichen Parametern; es handelt sich also jeweils um den selben MC, dessen Funktion du ansprichst; dafür braucht es keinen Prototype.

Hier ein Bsp. für eine Schleifenlösung:

ActionScript:
  1. arButtons = [{sm:0,da:12},{sm:25,da:37}];
  2.  
  3. for(var i = 0;i<arButtons.length;i++) {
  4.     var bt = this["m"+(i+1)+"_btn"];
  5.     bt.obj = arButtons[i];
  6.     bt.onRelease = function() {
  7.         if(_global.activeBTN == this) return;
  8.         arbeit(this.obj.sm,this.obj.da,this);
  9.     };
  10. }
  11.  
  12. this.arbeit = function(sm, da,btn) {
  13.         _level0.sprungmarke = sm;
  14.         _level0.dauer = da;
  15.         loadMovie("film2.swf", 2);
  16.         filmstatus = 0;
  17.         _global.activeBTN.aktiv._alpha = 0;
  18.         _global.activeBTN = btn;
  19.         _global.activeBTN.aktiv._alpha = 60;
  20.  
  21. };

Grüße
Sascha
__________________
12:15, press return
ludabruda ist offline   Mit Zitat antworten
Alt 18-08-2005, 10:50   #3 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Zitat:
ist die verwendung so politisch korrekt?
Ist doch völlig egal, wenn es funzt...

Ich hätte aber wahrscheinlich eine einfache Funktion genommen, der ich das MC-Objekt als Parameter mit übergeben hätte.

Denn die Prototypes waren eigentlich mehr für gekapselte Objekte vorgesehen. Aber, wie geschrieben: wenn es funktioniert ist es doch ok...
  Mit Zitat antworten
Alt 18-08-2005, 11:04   #4 (permalink)
FBx
 
Benutzerbild von xlive
 
Registriert seit: May 2003
Beiträge: 968
@agedoubleju:
1. was meinst du mit ...Prototypes waren eigentlich...
wieso waren?
2. was kann man sich unter gekapselte Objekten vorstellen?
xlive ist offline   Mit Zitat antworten
Alt 18-08-2005, 11:35   #5 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Zitat:
wieso waren?
In AS 2 sollten - durch das etwas andere Konzept - eigentlich keine Prototypes mehr verwendet werden...

Zitat:
2. was kann man sich unter gekapselte Objekten vorstellen?
Ich verstehe darunter bspw. eine Funktion, die über Parameter Werte bekommt, aber nichts außerhalb der Funktion verändern darf, sondern nur Werte zurückliefern (bspw. über return). Du greifst z.B. mit den _level0-Variablen und dem loadMovie auf Daten außerhalb deines Prototypen zu.
  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 03:03 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele