Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 11-12-2003, 15:43   #1 (permalink)
this.onEnterFame
 
Benutzerbild von RedSaint
 
Registriert seit: Feb 2002
Ort: Jetzte: Stuttgart
Beiträge: 1.666
alternativen für onEnterFrame gesucht!!

hi hi,


mal so ne frage genereller natur:

ich hab in meinem projekt mittlerweile ne ganze menge onEnterFrame´s drin, teilweise auch mit setInterval und ner if -abfrage verbunden um die OEF auch bei nichtgebrauch wieder zu killen. dennoch geht mein rechner ziemlich in die knie... wie soll das erst bei lahmeren rechnern oder mac´s aussehen???

-> was für alternativen hab ich für onEnterFrame um:

-> dauerthaft zu checken ob variablen sich ändern
-> functions auszuführen wenn ein movieclip geklickt wird oder vars sich ändern
-> as animationen durchzuführen
-> nach animationen functions auszuführen (also z.b. ständig die _xpos eines mc abzufragen-> wenn mc._x>=0 tu irgendwas)
-> und mehr ...


irgendwo hab ich mal listener und watcher aufgeschnappt ... was ist das und kann ich das zum dauerhaften vars checken nutzen?
oder gibts was änderes?
wie stellt ihr das bei aufwendigeren sahen an, dass die performance auch bei "normalo§ rechner nicht all zu sehr abkackt?



bin für alle vorschläge dankbar ...


_RED_
__________________
_may the force be with you_
.................................................. .........
on Fire 2008
.................................................. .........

Easy Crime available here
.................................................. .........

_RED_ + Flashforum = Big Love
.................................................. .........

A.K.A: ACHIM 0815

Geändert von RedSaint (11-12-2003 um 15:45 Uhr)
RedSaint ist offline   Mit Zitat antworten
Alt 11-12-2003, 16:24   #2 (permalink)
.--. .. ..- ...
 
Benutzerbild von pius
 
Registriert seit: Jul 2002
Ort: munich
Beiträge: 1.345
naja, eben mit 'watch' oder 'setter/getter-functionen', 'onPress' bei mc's, 'if's' nur dann, wenn sich tatsächlich was ändert, ... logische Vereinfachungen, konzeptuelle Veränderung, intelligenter Aufbau, ...

... so halt eben ...



... und ... Bescheidenheit ...
__________________
one out of many
pius ist offline   Mit Zitat antworten
Alt 11-12-2003, 16:44   #3 (permalink)
this.onEnterFame
 
Benutzerbild von RedSaint
 
Registriert seit: Feb 2002
Ort: Jetzte: Stuttgart
Beiträge: 1.666
hi pius ...






soll deine antwort bedeuten, dass meine frage "zu groß" ist um sie in einem post zuu beantworten?

setter / getter - nie gehört... kannst du evtl ein kleines (vielleicht kommentiertes) beispiel zum verständnis machen....und/oder mir ein stichwort für die As-refernz geben...dann les ich selbst nach...aber ne kurze erklärung wär´dennoch super...



danke mal wieder...


_RED_


edit: was im der online referenz unter "getter" bzw. "setter" steht hab ich schon nach unserem letzten posting nachgeschaut - hat mich aber in bezug auf OEF´s nicht weitergebracht ...
__________________
_may the force be with you_
.................................................. .........
on Fire 2008
.................................................. .........

Easy Crime available here
.................................................. .........

_RED_ + Flashforum = Big Love
.................................................. .........

A.K.A: ACHIM 0815

Geändert von RedSaint (11-12-2003 um 16:47 Uhr)
RedSaint ist offline   Mit Zitat antworten
Alt 11-12-2003, 16:58   #4 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
holla red

leg mal 4 mc's auf die bühne und nenne sie mc1 bis mc4

ActionScript:
  1. //
  2. //  benachrichtigungs-funktionen definieren
  3. Mouse.a = function() {
  4.     this.broadcastMessage("hallo");
  5. };
  6. Mouse.b = function() {
  7.     this.broadcastMessage("bingo");
  8. };
  9. Mouse.addListener(Mouse);
  10. // Mouse anmelden
  11. //
  12. //
  13. for (var i = 1; i<6; i++) {
  14.     Mouse.addListener(_root["mc"+i]);
  15.     //  die mc's anmelden
  16. }
  17. for (var i = 1; i<6; i++) {
  18.     _root["mc"+i].onPress = function() {
  19.         Mouse.a();
  20.         Mouse.b();
  21.     };
  22. }
  23. //
  24. //
  25. //   die functionen der angemeldeten instanzen definieren
  26. //   einem neuen objekt die function bingo aufsetzen
  27. obj = new Object();
  28. obj.bingo = function() {
  29.     return (ggg=100);
  30. };
  31. Mouse.addListener(obj);
  32. //
  33. //
  34. mc1.hallo = function() {
  35.     this._x += 100;
  36. };
  37. mc2.hallo = function() {
  38.     this._alpha = 50;
  39. };
  40. mc3.hallo = function() {
  41.     this.onEnterFrame = function() {
  42.         this._rotation -= 1;
  43.     };
  44. };
  45. mc4.bingo = function() {
  46.     this.bewegen(300);
  47. };
  48. MovieClip.prototype.bewegen = function(ziel) {
  49.     this.onEnterFrame = function() {
  50.         this._x<ziel ? this._x += 1 : this.kill();
  51.     };
  52. };
  53. MovieClip.prototype.kill = function() {
  54.     delete this.onEnterFrame;
  55. };



dann klick mal auf auf irgendeinen der mc's.
sieht chaotisch aus, steckt aber 'ne menge zum verstehen drin
warrantmaster ist offline   Mit Zitat antworten
Alt 11-12-2003, 18:25   #5 (permalink)
this.onEnterFame
 
Benutzerbild von RedSaint
 
Registriert seit: Feb 2002
Ort: Jetzte: Stuttgart
Beiträge: 1.666
--- ok... den großteil hab ich denk cih sogar geschnallt...nur bei den sachen die jetzt neu für mich sind steig ich noch nicht ganz durch:
ActionScript:
  1. Mouse.a = function() {
  2.         this.broadcastMessage("hallo");
  3. Mouse.addListener(Mouse);
-> warum diese broadcastMessage? wird die nochmal gebraucht?ne, oder?

-> was genau macht der: Mouse.addListener(Mouse); prüfen ob ein mc geklickt wird oder ob überhaupt geklickt wird, oder?

ActionScript:
  1. obj = new Object();
  2. obj.bingo = function() {
  3.         return (ggg=100);
  4. };
-> das hab ich überhaupt nicht geschnallt, wenn ich das im code rausschmeisse, ändert sich nichts an der animation der mc´s ... ich bekomm nur in "variablen anzeigen" ggg=100 ... kommt das ganze einem if(bingo==true){ggg=100;} gleich?

-> rest ist klar....und ganz klar interessant ...



_RED_
__________________
_may the force be with you_
.................................................. .........
on Fire 2008
.................................................. .........

Easy Crime available here
.................................................. .........

_RED_ + Flashforum = Big Love
.................................................. .........

A.K.A: ACHIM 0815

Geändert von RedSaint (11-12-2003 um 18:27 Uhr)
RedSaint ist offline   Mit Zitat antworten
Alt 11-12-2003, 20:53   #6 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
Mouse.addListener(Mouse)

brauchst du eigentlich nur, wenn du z.b. mit

Mouse.onMouseDown=function(){
Mouse.b()
}

die maus mit einer funktion belegen willst.
zumindest läuft das sonst nicht
ist also für dieses beispiel nicht unbedingt
notwendig gewesen.


obj = new Object();
obj.bingo = function() {
return (ggg=100);
};


ist als beispiel für die ablage von funktionen
in objekten gedacht.
das return könnte ja in der funktion bingo
z.b. so ausgewertet werden:

Mouse.b = function() {
this.broadcastMessage("bingo");
trace(ggg*22);
};


grz
warrantmaster ist offline   Mit Zitat antworten
Alt 11-12-2003, 21:11   #7 (permalink)
r0b
Neuer User
 
Benutzerbild von r0b
 
Registriert seit: Feb 2002
Ort: Hamburg
Beiträge: 1.281
Also im Prinzip ist die Antwort: Eventbasierte Programmierung. warrantmaster hat ja schon ein schönes Beispiel dazu gegeben.

Dazu hätte ich ein paar gute Links parat:
http://www.ultrashock.com/tutorials/...o_tutorial.php
http://www.ultrashock.com/tutorials/...r_tutorial.php
http://www.ultrashock.com/tutorials/...e_tutorial.php

mfg

Robert
__________________
robertreich.de v4 | Pixelfonts & FlashSite Tutorial
Friends of ED - Byte Size Flash MX: Adventures in Optimization

"Give a man a fish, and he eats for a day... Show him how to fish, and he eats for a lifetime."
r0b ist offline   Mit Zitat antworten
Alt 12-12-2003, 10:36   #8 (permalink)
this.onEnterFame
 
Benutzerbild von RedSaint
 
Registriert seit: Feb 2002
Ort: Jetzte: Stuttgart
Beiträge: 1.666
dass ist ja der hammer, rOb ! ... damit kann ich ja einen großteil meiner momentanen OEF ersetzten und sachen nurnoch dann ausführen wenn sich wirklich "was tut" ...


... man man man ... aber warum arbeiten dann hier im FF nicht mehr leute damit? oder muss ich da mehr in den OOP bereich gehen?

warum hat warrant jetzt
ActionScript:
  1. ASBroadcaster.initialize (NewsFeed.prototype);
nicht gebraucht? bei ultrashock hab ich das jetzt so verstanden dass man erstmal die methoden -addListener und -broadcastMessage initialisieren muss um sie nutzen zu können...aber scheinbar stehen sie auch ohne zur verfügung...


kann ich evtl. noch nen link (oder zwei) zu einfachen anwendungsbeispielen haben? das würde mir evtl. die konkrete nutzung in meinem fall erleichtern ...


danke aber schonmal!
bin mal wieder heiss geworden ... was ich nicht sein sollte weil ich an meiner diplomarbeit sitze und damit schon genug um die ohren hab


_RED_
__________________
_may the force be with you_
.................................................. .........
on Fire 2008
.................................................. .........

Easy Crime available here
.................................................. .........

_RED_ + Flashforum = Big Love
.................................................. .........

A.K.A: ACHIM 0815
RedSaint ist offline   Mit Zitat antworten
Alt 12-12-2003, 11:24   #9 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
hi red (...jaja...wenn erst mal angefangen... )

es gibt in flash objekte, die man nicht anmelden muß (mouse,key,stage,textfield,selection,fstyleformat) ,
alle anderen mußt du initialisieren.

ActionScript:
  1. o = {}
  2. ASBroadcaster.initialize(o);
  3. oM = {}
  4. oM.hallo=function(x)
  5. {
  6.     trace(x+" hat mich aufgerufen")
  7. }
  8.  
  9. o.addListener(oM);
  10.  
  11. _root.onMouseDown=function()
  12. {
  13.     o.broadcastMessage ("hallo",typeof(o)+" 'o'")
  14. }


ohne initialize(o); passiert nixx.
warrantmaster ist offline   Mit Zitat antworten
Alt 12-12-2003, 12:04   #10 (permalink)
this.onEnterFame
 
Benutzerbild von RedSaint
 
Registriert seit: Feb 2002
Ort: Jetzte: Stuttgart
Beiträge: 1.666
wenn ihr keinen bock mehr habt: bescheid sagen, ok?






ich hab das ultrashock bsp mal auf einen konkretenfall aus meinem projekt angewand und es funzt natürlich nicht:
ActionScript:
  1. scaling = function () {
  2.     this.onEnterFrame = function() {
  3.         trace("scaling");
  4.         if (this.balken._xscale != zahl) {
  5.             this.balken._xscale += (zahl-this.balken._xscale)/_root.speed;
  6.         } else {
  7.             kill();
  8.         }
  9.     };
  10. };
  11.  
  12. kill = function () {
  13.     trace("gekillt");
  14.     delete this.onEnterFrame;
  15. };
  16.  
  17. suendenzahl = new Object();
  18. ASBroadcaster.initialize(suendenzahl);
  19.  
  20. _root.suendebaro = new Object();
  21. suendebaro.onSuendenzahl = function(zahl) {
  22.     trace(this.balken._xscale);
  23.     trace(zahl);
  24.     scaling();
  25. };
  26.  
  27. suendenzahl.addListener(suendebaro);
  28. suendenzahl.broadcastMessage("onSuendenzahl", _root.suende);
  29.  
  30. stop();

->trace(zahl) klappt einwandfrei, aber der this.balken.-xscale is undefinied ... wie muss der pfad denn richtig lauten?
-> eigentlich übergebe ich die function doch an _root.suendebaro... das ist ja ein _listener ...
__________________
_may the force be with you_
.................................................. .........
on Fire 2008
.................................................. .........

Easy Crime available here
.................................................. .........

_RED_ + Flashforum = Big Love
.................................................. .........

A.K.A: ACHIM 0815
RedSaint ist offline   Mit Zitat antworten
Alt 12-12-2003, 12:17   #11 (permalink)
r0b
Neuer User
 
Benutzerbild von r0b
 
Registriert seit: Feb 2002
Ort: Hamburg
Beiträge: 1.281
Zitat:
Geschrieben von RedSaint
dass ist ja der hammer, rOb ! ... damit kann ich ja einen großteil meiner momentanen OEF ersetzten und sachen nurnoch dann ausführen wenn sich wirklich "was tut" ...

... man man man ... aber warum arbeiten dann hier im FF nicht mehr leute damit? oder muss ich da mehr in den OOP bereich gehen?
Tun sie bestimmt. Nur ist das eben nicht so, das man mit sowas am Tresen seiner Stammkneipe prahlt.

Robert am Tresen: "Du hörmal... ich arbeite jetz' eventbasiert..."

Barkeeper: "Na, das is ja schön für dich..."

__________________
robertreich.de v4 | Pixelfonts & FlashSite Tutorial
Friends of ED - Byte Size Flash MX: Adventures in Optimization

"Give a man a fish, and he eats for a day... Show him how to fish, and he eats for a lifetime."
r0b ist offline   Mit Zitat antworten
Alt 12-12-2003, 12:21   #12 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
leg mal einen mc mit verknüpfer "mc" 75*20 px in die lib und
das auf frame 1:

ActionScript:
  1. count=0
  2. o = {}
  3. ASBroadcaster.initialize(o);
  4.  
  5. for(var i=0;i<6;i++)
  6. {
  7.     var mc=_root.attachMovie('mc','mc'+i,i,{_x:i*80,id:i})
  8.     o.addListener(mc)
  9.     mc.xpos=mc._x
  10.     mc.ypos=mc._y
  11.     mc.xziel=0
  12.     mc.yziel=i*30
  13.     mc.onPress=function()
  14.     {
  15.         if(count==0)
  16.         {
  17.         o.broadcastMessage ("move",this.id)
  18.         count=1
  19.         }else{
  20.         o.broadcastMessage ("moveback",this.id) 
  21.         count=0
  22.         }
  23.    
  24.     }
  25.     mc.move=function(id)
  26.     {
  27.         this.id != id ?(this._x=this.xziel,this._y=this.yziel,this._alpha=50,this.enabled=0) :0 ;      
  28.     }
  29.     mc.moveback=function(id)
  30.     {
  31.         this.id != id ?(this._x=this.xpos,this._y=this.ypos,this._alpha=100,this.enabled=1) :0 ;       
  32.     }
  33. }
warrantmaster ist offline   Mit Zitat antworten
Alt 12-12-2003, 12:25   #13 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
oups, hab deine frage überlesen

this.balken...

wessen balken ist es denn ?
warrantmaster ist offline   Mit Zitat antworten
Alt 12-12-2003, 12:39   #14 (permalink)
this.onEnterFame
 
Benutzerbild von RedSaint
 
Registriert seit: Feb 2002
Ort: Jetzte: Stuttgart
Beiträge: 1.666
der balken von dem mc: _root.suendebaro .... darin ist dann der mc balken

->warrant...das schlimme an deinem bsp ist, dass ich´s zwar verstehe, aber nie selbst schreiben könnte... ich muss zum beispiel immer die if abfrage sehen können if(dis oder das){tu was anders das inder function "sonstwas" efiniert ist} ...
die ? : syntax ...da hab ich mich noch nicht dran gewöhnt.... machen denn 10 zeilen mehr code was aus, praktisch meine ich? z.b. incpu leistung oder swf größe?



@rOb

na auf dem achimtreffen geht´s dann schon eher so:

achim math.pi: " du ...hör mal...ich arbeite jetzt eventbasiert..."

achim 0815:" ne echt? ich hol uns mal zwei bier... ich glaub das gespräch gleich dauert länger..."
__________________
_may the force be with you_
.................................................. .........
on Fire 2008
.................................................. .........

Easy Crime available here
.................................................. .........

_RED_ + Flashforum = Big Love
.................................................. .........

A.K.A: ACHIM 0815

Geändert von RedSaint (12-12-2003 um 12:46 Uhr)
RedSaint ist offline   Mit Zitat antworten
Alt 12-12-2003, 12:56   #15 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
leg mal

trace(this.balken);


rein, dann siehst du ja, ob es den gibt.

das mit der syntax-form ist eigentlich für uns normalos egal,
man sollte es so machen, wie man es am besten überblickt.
wenn man nicht unbedingt dadurch 100 zeilen (wobei wohl die menge der zeichen ausschlaggebend ist) einspart, dann sollte man sich nicht zu irgendetwas zwingen.
wichtiger ist die technische seite, wie vermeidung von oef's
und rechenintensiven methoden.



btw:


achim math.pi: " du ...hör mal...ich arbeite jetzt eventbasiert..."

achim 0815:" ne echt? ich hol uns mal 'ne kiste bier und ruf zu hause an, daß ich morgen erst wiederkomme... ich glaub das gespräch gleich dauert länger..."



warrantmaster 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 08:16 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele