Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 26-08-2003, 12:40   #1 (permalink)
Neuer User
 
Registriert seit: Jul 2003
Ort: BCN
Beiträge: 33
problem mit switchDepths

Hi,

der folgende Code sollte eigentlich den Hintergrund ändern, bzw. von dem einen zum anderen über alphawerte überblenden. Nur geht das nicht...

die funktion arbeitet so: ein teil des bildpfades wird übergeben, dann dieses bild in eben 0 geladen, eingeblendet und am ende nach eben 1 verschoben, ein neuer hintergrund landet wieder auf ebene 0, blendet sich ein etc... jedesmal, wenn eben 0 einblendet, blendet gleichzeitig eben 1 aus...

aber es geht nicht... *heul* wieso?!?!?!

ActionScript:
  1. function chgBackground(type){
  2.     actBg = bgimg[type].pic;
  3.  
  4.     _root.bg.bg1.loadMovie(lang + bgimg[type].pic + ".jpg");
  5.     _root.bg.bg1._alpha = 0;
  6.     _root.bg.onEnterFrame = function(){
  7.         if(finished){
  8.             this.bg1._width = bgimg[type].w ? bgimg[type].w : null;
  9.             this.bg1._height = bgimg[type].h ? bgimg[type].h : null;
  10.             this.bg1._x = bgimg[type].x ? bgimg[type].x : null;
  11.             this.bg1._y = bgimg[type].y ? bgimg[type].y : null;
  12.             this.bg1.maxalpha = bgimg[type].alpha ? bgimg[type].alpha : 100;
  13.             finished = false;
  14.             this.blendin = true;
  15.         }
  16.         if(this.blendin){
  17.             if(this.bg1._alpha < this.bg1.maxalpha) this.bg1._alpha += conf.transAdd;
  18.             else{
  19.                 this.blendin = false;
  20.                 this.bg1.swapDepths(bg2);
  21.                 delete this.onEnterFrame;
  22.             }
  23.         }
  24.         l = this.bg1.getBytesLoaded();
  25.         t = this.bg1.getBytesTotal();
  26.         if(l>1 && l>=t) finished = true;
  27.  
  28.         if(this.bg2._alpha>0){
  29.             //this.bg2._alpha -= conf.transAdd; 
  30.         }
  31.     }
  32. };
Acid-Sky ist offline   Mit Zitat antworten
Alt 26-08-2003, 12:45   #2 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Zürich
Beiträge: 1.776
erstmal: schau mal in der referenz unter "type" nach. das ist nämlich reserviert ,für das TextField-objekt...

werd nacher nochmal näher rein gucken.
fresh ist offline   Mit Zitat antworten
Alt 26-08-2003, 12:46   #3 (permalink)
Neuer User
 
Registriert seit: Jul 2003
Ort: BCN
Beiträge: 33
jo... weiss ich, aber da da kein texfield vorkommt, kann ich dass einfach verwenden. ist eher syntaxhighlighting dran schuld. type hat nur ne bedeutung, wenne s direkt mit einem textfield verwendet wird...
Acid-Sky ist offline   Mit Zitat antworten
Alt 26-08-2003, 13:02   #4 (permalink)
Neuer User
 
Registriert seit: Jul 2003
Ort: BCN
Beiträge: 33
Thumbs up

ok... ein paar sachen geändert... lag an dem switchDepths...
hab die MC mit namen angesprochen und da ein name nach switchDepth auf eine andere ebene zeigt hab ich immer denselben clip überladen...

hier das funktionierende script um diesen thread abzuschliessen:

ActionScript:
  1. _root.createEmptyMovieClip("bg",layer.bg);
  2. _root.bg.createEmptyMovieClip("bg1",0);
  3. _root.bg.createEmptyMovieClip("bg2",1);
  4.  
  5. // blendin menu background
  6. chgBackground("standard");
  7.  
  8.  
  9. function chgBackground(type){
  10.     actBg = bgimg[type].pic;
  11.  
  12.     _root.bg["bg"+bIn].loadMovie(lang + bgimg[type].pic + ".jpg");
  13.     _root.bg["bg"+bIn]._alpha = 0;
  14.     _root.bg.finished = false;
  15.     _root.bg.onEnterFrame = function(){
  16.         if(this.finished){
  17.             this["bg"+bIn]._width = bgimg[type].w ? bgimg[type].w : null;
  18.             this["bg"+bIn]._height = bgimg[type].h ? bgimg[type].h : null;
  19.             this["bg"+bIn]._x = bgimg[type].x ? bgimg[type].x : null;
  20.             this["bg"+bIn]._y = bgimg[type].y ? bgimg[type].y : null;
  21.             this["bg"+bIn].maxalpha = bgimg[type].alpha ? bgimg[type].alpha : 100;
  22.             this.finished = false;
  23.             this.blendin = true;
  24.         }
  25.         if(this.blendin){
  26.             if(this["bg"+bIn]._alpha < this["bg"+bIn].maxalpha) this["bg"+bIn]._alpha += conf.transAdd;
  27.             else{
  28.                 this.blendin = false;
  29.                 if(bIn==1){
  30.                     bIn = 2;
  31.                     bOut = 1;
  32.                 }else{
  33.                     bIn = 1;
  34.                     bOut = 2;
  35.                 }
  36.                 delete this.onEnterFrame;
  37.             }
  38.         }
  39.         var l = this["bg"+bIn].getBytesLoaded();
  40.         var t = this["bg"+bIn].getBytesTotal();
  41.         if(l>1 && l>=t) this.finished = true;
  42.  
  43.         if(this["bg"+bOut]._alpha>0){
  44.             this["bg"+bOut]._alpha -= conf.transAdd;   
  45.         }
  46.     }
  47. };
Acid-Sky ist offline   Mit Zitat antworten
Alt 26-08-2003, 13:11   #5 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Zürich
Beiträge: 1.776
ah ja;
switchDepths hatte ich auch weder im ersten noch im zweiten script auf die schnelle finden können; solltest dann zumindest die funktionsdeklaration mitposten, sonst weiss ja keiner, was switchDepths macht...

das mit type ist interessant...
fresh ist offline   Mit Zitat antworten
Alt 26-08-2003, 13:14   #6 (permalink)
Neuer User
 
Registriert seit: Jul 2003
Ort: BCN
Beiträge: 33
Wink

ooops.... ich meinte swapDepths()


(und das kommt im 1. script vor...
bei der blendin-abfrage ziemlich mittig:

ActionScript:
  1. this.blendin = false;
  2.                                 this.bg1.swapDepths(bg2);
  3.                                 delete this.onEnterFrame;
Acid-Sky ist offline   Mit Zitat antworten
Alt 26-08-2003, 13:17   #7 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Zürich
Beiträge: 1.776
yo, das hatte ich gefunden; dachte aber, du meinst evt. was anderes;

schön, dass es jetzt funktioniert, und schön, dass du uns an der funktionierenden lösung teilhaben lässt. ich werd mir die gerne heut abend mal zu lernzwecken ansehen!
fresh ist offline   Mit Zitat antworten
Alt 26-08-2003, 13:36   #8 (permalink)
Neuer User
 
Registriert seit: Jul 2003
Ort: BCN
Beiträge: 33
bitte bitte

da es sich um eine funktion aus meiner anwendung handelt fehlt natürlich ein teil des zusammenhangs...

solltest du fragen haben oder ein kopie meines kompletten source wollen, schick einfach ne mail an acid-sky@web.de
Acid-Sky ist offline   Mit Zitat antworten
Alt 26-08-2003, 13:50   #9 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Zürich
Beiträge: 1.776
wow! das nenn ich grosszügig!
[ot] was es doch für unterschiede gibt: wirf mal nen blick hier rein:
wie kann ich das frame-script editieren?
fresh ist offline   Mit Zitat antworten
Alt 26-08-2003, 14:13   #10 (permalink)
Neuer User
 
Registriert seit: Jul 2003
Ort: BCN
Beiträge: 33
nun, sowas soll vorkommen...

allerdings muss ich schon sagen, dass zumindest für absolute anfänger fragen wohl eher ein tutorial herhalten sollte als ein forum - und ob ein ";" die zeilen bei flash abschliesst ist als frage echt erschreckend... (im zweifel soll der doch in einen beliebigen thread gehen und den source ansehen...)

danke, wenn du mein angebot für grosszügig hälst - ich halte es eher für selbstverständlich... schliesslich mache ich erst seit
4 wochen flash und hab so ziemlich alles über forum und tuts gelernt - ein bisserl was muss ich doch zurückgeben
Acid-Sky 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:45 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele