Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 02-06-2005, 13:06   #1 (permalink)
---
 
Benutzerbild von LeBensch
 
Registriert seit: Jan 2002
Ort: Baden-Baden
Beiträge: 172
2 functions im selben Frame ausführen?

Hallo,
ich habe mir zwei nahezu identische functions angelegt:
ActionScript:
  1. function fadeout() {
  2.         vol = loop.getVolume();
  3.         this.onEnterFrame = function() {
  4.                 vol -= 1;
  5.                 if(loop.getVolume()>0){
  6.                         loop.setVolume(vol);
  7.                 } else {
  8.                         delete this.onEnterFrame
  9.                 };
  10.         };
  11. }
und
ActionScript:
  1. function alphaout() {
  2.          alpha = mc._alpha;
  3.         this.onEnterFrame = function() {
  4.                 alpha -= 2;
  5.                 if(mc._alpha>0){
  6.                        mc._alpha = alpha;
  7.                 } else {
  8.                         delete this.onEnterFrame
  9.                 };
  10.         };
  11. }

Die erste function fadet einen Sound aus, die zweite blendet einen MC aus.
Beide functions werden in der _root-Zeitleiste in einem Frame per fadeout() und alphaout() aufgerufen. Es wird aber immer nur die zuletzt genannte ausgeführt...woran kann das liegen? Alleine aufgerufen funktioniert jede function einwandfrei, nur wenn ich sie zusammen im selben Frame aufrufe, dann gibts Probleme. Weiß jemand warum?

Danke im voraus
LeBensch
__________________
Es gibt nichts gutes, außer man tut es
--
Wenn man keine Ahnung hat: Einfach mal die Fresse halten!
--
Helga: Hägar, du hörst immer nur was du hören willst. Du bist der perfekte Ignorant!
Hägar: Perfekt? Meinst du wirklich?
--
Die Dinge im Leben sind nicht nur schwarz oder weiß. Sie existieren in einem Kontinuum von Graustufen und diese sind im besten Falle auch noch bunt!
LeBensch ist offline   Mit Zitat antworten
Alt 02-06-2005, 13:14   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.321
a = 7;
a = 13;

du wirst in a nicht die 7 UND die 13 sehen.

aber sinngemäss machst du das:

fadeout() ... this.onEnterFrame ...
alphaout() ... this.onEnterFrame ...


mach aus beiden eine function. bzw. besser so:

function fMachDas () {...}
function alphaout() {
alpha = mc._alpha;
this.onEnterFrame = fMachDas;
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 02-06-2005, 13:21   #3 (permalink)
Level up
 
Benutzerbild von Alois
 
Registriert seit: Jun 2001
Ort: Bocholt
Beiträge: 4.155
naja, das sollte eigentlich klar sein...., bei beiden Funktionen wird jeweils this.onEnterFrame gesetzt und damit uberschreibt die letzte Funktion das enterFrame der ersten...als schnelle Lösung, baue die funktion alphaout etwas um:
ActionScript:
  1. function alphaout(mcname) {
  2. this[mcname].function alphaout(mcname) {
  3.     mcname.onEnterFrame = function() {
  4.         if (this._alpha>0) {
  5.             this._alpha -= 2;
  6.         } else {
  7.             delete this.onEnterFrame;
  8.         }
  9.     };
  10. }
...Aufruf dann:
ActionScript:
  1. alphaout(meinMC);
...solltest Du häufiger solche Probleme haben, mach Dich mal mit 'asBroadcaster' vertraut...

Gruß

Alois
__________________
-Spuckt mir auf den Stuhl, ich will im Grünen sitzen-
Alois ist offline   Mit Zitat antworten
Alt 02-06-2005, 14:32   #4 (permalink)
---
 
Benutzerbild von LeBensch
 
Registriert seit: Jan 2002
Ort: Baden-Baden
Beiträge: 172
Danke sehr,
Alois, deine Funktion hat zwar auch net funktioniert, aber durch euer beider Hilfe hab ich sie dann im Endeffekt so umgeschrieben:
ActionScript:
  1. function alphaout(mcname) {
  2.             mcname.onEnterFrame = function() {
  3.                 if(this._alpha>0){
  4.                         this._alpha -= 2;
  5.                 }else{
  6.                         delete this.onEnterFrame
  7.                 };
  8.         };
  9. }

Nun flutscht das ganze

Grüßles
LeBensch
__________________
Es gibt nichts gutes, außer man tut es
--
Wenn man keine Ahnung hat: Einfach mal die Fresse halten!
--
Helga: Hägar, du hörst immer nur was du hören willst. Du bist der perfekte Ignorant!
Hägar: Perfekt? Meinst du wirklich?
--
Die Dinge im Leben sind nicht nur schwarz oder weiß. Sie existieren in einem Kontinuum von Graustufen und diese sind im besten Falle auch noch bunt!
LeBensch ist offline   Mit Zitat antworten
Alt 02-06-2005, 14:42   #5 (permalink)
Level up
 
Benutzerbild von Alois
 
Registriert seit: Jun 2001
Ort: Bocholt
Beiträge: 4.155
ja richtig, so sollte das eigentlich auch bei mir aussehen..
__________________
-Spuckt mir auf den Stuhl, ich will im Grünen sitzen-
Alois 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 20:12 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele