Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 20-07-2004, 12:43   #1 (permalink)
...
 
Benutzerbild von flash bier
 
Registriert seit: Nov 2001
Beiträge: 1.227
erweitern des onEnterFrame

hallo flashforum,

ist es irgendwie möglich ein onEnterFrame zu erweitern ?
Hmmm.... blöd zu erklären, da bin ich nicht so gut drin.

Bsp:
Also, während das hier läuft:
Code:
onEnterFrame=function(){
if(_root.einMC._alpha>0){
_root.einMC._alpha-=1;
}
}
könnte es ja sein, dass zusätzlich folgendes passieren soll:
Code:
onEnterFrame=function(){
if(_root.einAndererMc._rotation<30){
_root.einAndererMc._rotation+=1;
}
}
Ich weiss schon dass ich das gleich zusammen in ein EnterFrame packen kann,
und kenne auch setInterval.
Aber es wäre eben sehr viel konfortabler, wenn ich zBsp meinen Buttons sagen könnte, wenn du geklickt wirst, füge dem onEnterFrame folgenden Code hinzu.

Fänds eben nicht schlecht, wenns da was gäbe, was mir dieses ermöglichen würde. Habt ihr da eine Idee ?

Danke
MfG flash bier
__________________
Schweig oder sprich Worte, die besser sind als Schweigen !
flash bier ist offline   Mit Zitat antworten
Alt 20-07-2004, 12:50   #2 (permalink)
All-rounder
 
Benutzerbild von thebiz
 
Registriert seit: Mar 2004
Ort: Bayerische Rhön
Beiträge: 2.507
Warum willst Du das in ein onEnterFrame reinpacken.
Du kannst ja auf jeden Movieclip ein onEnterFrame packen.
Also wenn Du auf den Button drückst kann es so aussehen:

PHP-Code:
_root.einAndererMc.onEnterFrame=function(){
if(
_root.einAndererMc._rotation<30){
_root.einAndererMc._rotation+=1;
}

__________________

--------------------------------
Ich klicke, ergo bin ich. (me)
--------------------------------
thebiz ist offline   Mit Zitat antworten
Alt 20-07-2004, 12:51   #3 (permalink)
Level up
 
Benutzerbild von Alois
 
Registriert seit: Jun 2001
Ort: Bocholt
Beiträge: 4.155
jepp über einen Umweg:
ActionScript:
  1. //vorher:
  2. deinMC.onEnterFrame=function(){
  3. if(_root.einMC._alpha>0){
  4. _root.einMC._alpha-=1;
  5. }
  6. };
  7. //und jetzt erweitern:
  8. deinMC.altEnterFrame=deinMC.onEnterFrame;
  9. deinMC.onEnterFrame=function(){
  10. this.altEnterFrame();
  11. if(_root.einAndererMc._rotation<30){
  12. _root.einAndererMc._rotation+=1;
  13. }
  14. }
...uuund feddich.

Gruß

Alois
__________________
-Spuckt mir auf den Stuhl, ich will im Grünen sitzen-
Alois ist offline   Mit Zitat antworten
Alt 20-07-2004, 13:00   #4 (permalink)
...
 
Benutzerbild von flash bier
 
Registriert seit: Nov 2001
Beiträge: 1.227
Prima Alois!
Danke

MfG flash bier
__________________
Schweig oder sprich Worte, die besser sind als Schweigen !
flash bier ist offline   Mit Zitat antworten
Alt 20-07-2004, 13:08   #5 (permalink)
All-rounder
 
Benutzerbild von thebiz
 
Registriert seit: Mar 2004
Ort: Bayerische Rhön
Beiträge: 2.507
Bitte.
__________________

--------------------------------
Ich klicke, ergo bin ich. (me)
--------------------------------
thebiz ist offline   Mit Zitat antworten
Alt 20-07-2004, 13:15   #6 (permalink)
...
 
Benutzerbild von flash bier
 
Registriert seit: Nov 2001
Beiträge: 1.227
@thebiz:
ich arbeite eben nicht gerne mit 50 onEnterFrames, ohne Begründung !!

Aber vielleicht brauch ich das auch garnicht, aber es war eben ein Gedanke, obs denn überhaupt mal Möglich ist und schwupps wollt ichs wissen!

Danke trotzdem für Deine Hilfe

MfG flash bier
__________________
Schweig oder sprich Worte, die besser sind als Schweigen !

Geändert von flash bier (20-07-2004 um 13:17 Uhr)
flash bier ist offline   Mit Zitat antworten
Alt 20-07-2004, 13:19   #7 (permalink)
All-rounder
 
Benutzerbild von thebiz
 
Registriert seit: Mar 2004
Ort: Bayerische Rhön
Beiträge: 2.507
Ist ja auch besser nicht so viele
onEnterFrames laufen zu haben.
Hast scho' Recht.
__________________

--------------------------------
Ich klicke, ergo bin ich. (me)
--------------------------------
thebiz ist offline   Mit Zitat antworten
Alt 20-07-2004, 13:24   #8 (permalink)
Level up
 
Benutzerbild von Alois
 
Registriert seit: Jun 2001
Ort: Bocholt
Beiträge: 4.155
und noch etwas update...
ad 1) benutze die variable (altEnterFrame) nicht doppelt sonst kommt es zu einer Fehlermeldung (256 Rekursionsstufen....), wenn Du mehrmahls updaten musst machs eventuell mit einem array:
ActionScript:
  1. //Vorbereitung
  2. deinMC.altEnterFrame=new Array();
  3. _global.zaehler=0;
  4. //vorher:
  5. deinMC.onEnterFrame=function(){
  6. if(_root.einMC._alpha>0){
  7. _root.einMC._alpha-=1;
  8. }
  9. };
  10. //und jetzt erweitern:
  11.  
  12. deinMC.altEnterFrame[++_global.zaehler]=deinMC.onEnterFrame;
  13. deinMC.onEnterFrame=function(){
  14. this.altEnterFrame[_global.zaehler]();
  15. if(_root.einAndererMc._rotation<30){
  16. _root.einAndererMc._rotation+=1;
  17. }
  18. }
...wenn Du das oft nutzt, wird das natürlich kräftig auf die performance gehen.

für thebiz hier noch ein kleines Beispiel, was vielleicht erklärt, was flash bier will:
ActionScript:
  1. x=0;
  2. y=0;
  3. this.onEnterFrame=function(){
  4.     trace("x="+this.x++);
  5. }
  6. this.onMouseDown=function(){
  7.     if(!this.oldEnterFrame){
  8.     this.oldEnterFrame=this.onEnterFrame;
  9.     this.onEnterFrame=function(){
  10.         this.oldEnterFrame();
  11.         trace("......y="+this.y++);
  12.     }
  13.     }else{
  14.         this.onEnterFrame=this.oldEnterFrame;
  15.         delete this.oldEnterFrame;
  16.     }
  17. }

Gruß

Alois
__________________
-Spuckt mir auf den Stuhl, ich will im Grünen sitzen-

Geändert von Alois (20-07-2004 um 13:26 Uhr)
Alois ist offline   Mit Zitat antworten
Alt 20-07-2004, 13:30   #9 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
und wenn du´s ganz geil haben willst, dann arbeite mal mit 'apply'.

und dem ASBroadcaster


greetz

kelor
kelor ist offline   Mit Zitat antworten
Alt 20-07-2004, 13:34   #10 (permalink)
All-rounder
 
Benutzerbild von thebiz
 
Registriert seit: Mar 2004
Ort: Bayerische Rhön
Beiträge: 2.507
@ kelor

Was ist denn das schon wieder
ASBroadcaster und apply.

@ alois

ja danke.
__________________

--------------------------------
Ich klicke, ergo bin ich. (me)
--------------------------------
thebiz ist offline   Mit Zitat antworten
Alt 20-07-2004, 13:37   #11 (permalink)
...
 
Benutzerbild von flash bier
 
Registriert seit: Nov 2001
Beiträge: 1.227
hi kelor,

Mit ASBroadcaster hab ich noch nie gearbeitet!
Wat issen des, wenn dus in 2 Sätzen erklären könntest ?!

MfG flash bier
__________________
Schweig oder sprich Worte, die besser sind als Schweigen !
flash bier ist offline   Mit Zitat antworten
Alt 20-07-2004, 13:38   #12 (permalink)
Level up
 
Benutzerbild von Alois
 
Registriert seit: Jun 2001
Ort: Bocholt
Beiträge: 4.155
@kelor,
kannst Du auch ein Beispiel machen..., ich krieg das so nämlich nicht hin...
__________________
-Spuckt mir auf den Stuhl, ich will im Grünen sitzen-
Alois ist offline   Mit Zitat antworten
Alt 20-07-2004, 14:38   #13 (permalink)
Flashaholic
 
Benutzerbild von atothek
 
Registriert seit: Feb 2003
Ort: Berlin
Beiträge: 1.459
der ASBroadcaster ermöglicht es eigene events zu verwalten.

zB.

PHP-Code:
// erzeigen eine _globalen objects
_global.Broadcaster=new Object();
// wird mit dem methoden addListener, removeListener und broadcastMessage beerbt
ASBroadcaster.initialize(Broadcaster);

// einzelner listener
a=new Object();
a.onEvent=function(){
    
trace("a: aufgerufen");
}
Broadcaster.addListener(a);

// einzelner listener
b=new Object();
b.onEvent=function(){
    
trace("b: aufgerufen");
}
Broadcaster.addListener(b);
mc.onPress=function(){
// auslösen des broadcasters
Broadcaster.broadcastMessage("onEvent");

bei jedem angemeldete listener wird das onEvent ausgelöst sobald ein knopf gedrückt wird.
__________________
TVNEXT Solutions
atothek ist offline   Mit Zitat antworten
Alt 20-07-2004, 14:41   #14 (permalink)
All-rounder
 
Benutzerbild von thebiz
 
Registriert seit: Mar 2004
Ort: Bayerische Rhön
Beiträge: 2.507
thx Mr.atothek
__________________

--------------------------------
Ich klicke, ergo bin ich. (me)
--------------------------------
thebiz ist offline   Mit Zitat antworten
Alt 20-07-2004, 14:54   #15 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 6.415
und so meinte es kelor?
ActionScript:
  1. broadcaster={}
  2. ASBroadcaster.initialize(broadcaster);
  3. ef0=function(){
  4.     trace("ef0")
  5. }
  6. //objekt welches die funktionen verwaltet
  7. enterFrames={ef0:ef0}
  8. broadcaster.addListener(enterFrames)
  9.  
  10. //
  11. this.onEnterFrame=function(){
  12.     //jeden möglichen aufruf durchlaufen
  13.     for(var i in this.enterFrames){
  14.         this.broadcaster.broadcastMessage(i)
  15.     }
  16. }
  17.  
  18. //nachträgliches hinzufügen
  19. enterFrames.ef1=function(){
  20.     trace("ef1")
  21. }


deluxe
Deluxe 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 11:11 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele