tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
12
ZUGRIFFE
2931
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    helene1 helene1 ist offline Mitglied Silber
    Registriert seit
    Oct 2006
    Beiträge
    54
    Hallo,
    ich möchte folgendes erreichen:

    -ich habe einen Flashfilm mit 100 Bildern
    -am linken Rand meines Films sind Button1-10, Beim drücken eines Buttons spring der Film also je nachdem auf Bild20, Bild80 oder auch zurück usw. Und bleibt dort stehen um jeweilige Inhalte anzuzeigen.
    -Ich möchte unter jedem Bild 10, 20, 30 usw jeweils drei jpg Bilder von extern laden und anzeigen lassen.
    -(die 9Bilder zwischen 10 und 20 usw könnte man auch löschen)

    Mit unten stehendem Script geht es aber nur ein Bild einzuladen obwohl ich mir 3 Ebenen erzeugt habe und das Script kopiert habe(mit geänderter Bildbezeichnung usw) , er läd aber nur eines.

    Wie bekomme ich das hin, dass alles endlich funktioniert?


    Bild 1 2 3 4 5 ... 10 .... 20
    Ebene1(bild1) home1.jpg about1.jpg
    Ebene2(bild2) home2.jpg about2.jpg
    Ebene3(bild3) home3.jpg about2.jpg

    Je nachdem ob auf home_btn oder about_btn usw gedrückt wird, sollen die jeweiligen 3 bilder erscheinen.
    Oder besser gesagt ich bekomme auf jeder seite EIN gewünschtes bild die anderen 2 erscheinen nicht mehr.


    PHP-Code:
    stop();
    _root.createEmptyMovieClip("bild3"0);
    _root.bild3.loadMovie("about3.jpg"0);

    bild3._y 110;
    bild3._x 800;

    _root.bild3._alpha 0;
    this.onEnterFrame = function() {
        
    gesamt _root.bild3.getBytesTotal();
        
    geladen _root.bild3.getBytesLoaded();
        
    preloader._visible true;
            
    anz._visible true
        
    if (geladen != gesamt) {
            
    _root.anz.text Math.round(100*geladen/gesamt)+"%";
            
    //dynamisches Textfeld mit Instanznamen "anz" muss natürlich erstellt sein ^^
            
    preloader._xscale 100*geladen/gesamt;
        } else {
            
    //hier müsste dann dein Script für die Größenänderung hin *gähn* man is schon spät
                    
    anz._visible false
            preloader
    ._visible false;
            if (
    _root.bild3._alpha<100 && geladen == gesamt) {
                
    _root.bild3._alpha += 2;  //war 10 jc
                //je höher der Wert desto schneller "faded" das Bild ein, also je niedriger desto langsamer
            
    }
        }
    }; 

    Ist das Problem evtl. dass ich 3 parallele ActionScripts habe und in jedem kommt der begriff "this" und "_root" vor
    Wie löse ich dieses Problem? BITTE UM HILFE. (ich hab das ganze auch in ein weiteres Forum geschrieben, aber auch noch keine Antwort erhalten).

    gruß
    helene
    Geändert von helene1 (27.05.07 um 09:29 Uhr)
     

  2. #2
    Avatar von inctube
    inctube inctube ist offline Mitglied Gold
    Registriert seit
    Feb 2004
    Beiträge
    227
    hallo,

    ich würde eher sagen, dass das Problem darin liegt, dass du deine 3 MovieClips in die selbe Tiefenebene lädst. Und diese Ebene hat nicht mit der Ebene in Flash selbst zu tun.
    Versuch mal die Levels deiner loadMovie Aktion so zu machen, dass diese nicht gleich sind.
    Also ungefähr so:

    PHP-Code:
    _root.createEmptyMovieClip("bild3"diese Zahl erhöhen);
    _root.bild3.loadMovie("about3.jpg"diese Zahl erhöhen); 
    dann hast du auf jeder Ebene das selbe Script und erhöst einfach deine Tiefenebene um 1.
    Ebene 1:
    PHP-Code:
    _root.createEmptyMovieClip("bild3"0);
    _root.bild3.loadMovie("about3.jpg"0); 
    Ebene 2:
    PHP-Code:
    _root.createEmptyMovieClip("bild3"1);
    _root.bild3.loadMovie("about3.jpg"1); 
    usw.
    Deine MovieClip, den du erstellst sollte dann natürlich auch angepasst werden. Also "bildX"...

    gruß inctube
     
    www.m-e.biz
    ..~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~..
    Tiere sind meine Freunde und Freunde esse ich nicht (G.B. Shaw)

  3. #3
    helene1 helene1 ist offline Mitglied Silber
    Registriert seit
    Oct 2006
    Beiträge
    54
    vielen dank für die recht einfach und logisch klingende antwort, allerdings wird dennoch immer nur ein bild angezeigt ich weis wirklich nicht mehr weiter, mir erscheint das sehr unlogisch.

    3Ebenen:
    EbeneBildlinks
    EbeneBildmitte
    EbeneBildrechts

    Es wird immer nur das Bild angezeigt das in der Untersten Ebene steht!
    Schiebe ich zB "EbeneBildlinks" unter "EbeneBildrechts" wird Bildlinks angezeigt usw.

    Wenn ich folgende Zeile:
    _root.bild4._alpha = 0;
    obwohl ich nur Bild1-3 habe, ins leere laufen lasse, werden alle 3 Bilder angezeigt aber gehen nimmer weg!?

    Vermutlich darf man nicht alles mit _root bezeichenen.

    gruß helene
    Geändert von helene1 (27.05.07 um 11:18 Uhr)
     

  4. #4
    Avatar von inctube
    inctube inctube ist offline Mitglied Gold
    Registriert seit
    Feb 2004
    Beiträge
    227
    Du erstellst einen MovieClip mit dem Namen "bildX". Wenn du jetzt diesen MovieClip ansprechen willst, dann musst du überall wo dieser Bezeichner vorkommt diesen auch durch den richtigen Namen ersetzen.
    Dein ganzer Code ist für ein bestimmtes Bild ausgelegt. Mit einer For-Schleife könntest du alle Bilder ansprechen und könntest dir so deine 3 Zeitleistenebenen sparen. Du hättest einmal deinen Code.
    Als Besipiel:
    PHP-Code:
    for (var i:Number0i<anzahli++) {
            
    this.createEmptyMovieClip("cl"+i,i)
        var 
    clip:Movieclip cl.attachMovie("bild""bild"+ii+1);

    Dieser Code erzeugt dir einen MovieClip und attached einen MovieClip aus der Library (muss verküpft sein) auf die Bühne, und zwar bei jedem Schelifendurchlauf. D.h. wenn du als "anzahl" 3 eingibst, macht er dir 3 MovieClips.

    Gruß inctube
     
    www.m-e.biz
    ..~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~..
    Tiere sind meine Freunde und Freunde esse ich nicht (G.B. Shaw)

  5. #5
    helene1 helene1 ist offline Mitglied Silber
    Registriert seit
    Oct 2006
    Beiträge
    54
    hi, wirklich vielen dank für deine hilfe ich dachte eigentlich das ich wüsste was du meinst, aber ich habe lange herumprobiert und krieg es leider wirklich nicht hin, könntest du BITTE ne .fla anhängen?

    gruß
    helene
     

  6. #6
    helene1 helene1 ist offline Mitglied Silber
    Registriert seit
    Oct 2006
    Beiträge
    54
    hallo,
    wie lade ich in deinem Bsp. die Bilder in die 3 Filme? Hab ich dann dieses "virtuelle Ebenenproblem 0, 1, 2 usw nicht mehr (da hatte es ja immer nur 1Bild angezeigt!?

    Ich dachte es müsste so gehen: (wenn ich zB 3Bilder ability1.jpg - ability3.jpg anzeigen lassen möchte.? ich krieg aber ne Fehlermeldung, wie schreibe ich die Zeile richtig
    PHP-Code:
    for (var i:Number0i<3i++) { 
            
    this.createEmptyMovieClip("cl"+i,i);
            
    this."cl"+i.loadMovie("ability"+i+".jpg",i);
        var 
    clip:MovieClip cl.attachMovie("bild""bild"+ii+1); 



    Das hier ist die Fehlermeldung:

    **Fehler** Szene=Szene 1, Ebene=Ebene 32, Bild=68:Zeile 3: Nach '.'-Operator wurde ein Feld erwartet.
    this.("cl"+i).loadMovie("ability"+i+".jpg",0);

    Anzahl der ActionScript-Fehler: 1 Gemeldete Fehler: 1
    Geändert von helene1 (28.05.07 um 13:36 Uhr)
     

  7. #7
    Avatar von inctube
    inctube inctube ist offline Mitglied Gold
    Registriert seit
    Feb 2004
    Beiträge
    227
    Also du musst das so schreiben:
    PHP-Code:
    for (var i:Number0i<3i++) { 
            
    this.createEmptyMovieClip("cl"+i,i);
            
    this["cl"+i].loadMovie("ability"+i+".jpg",i);
        var 
    clip:MovieClip cl.attachMovie("bild""bild"+ii+1); 

    Jetzt hast du deine 3 MovieClips in die jeweils ein Bild geladen wird.


    Gruß inctube
     
    www.m-e.biz
    ..~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~..
    Tiere sind meine Freunde und Freunde esse ich nicht (G.B. Shaw)

  8. #8
    helene1 helene1 ist offline Mitglied Silber
    Registriert seit
    Oct 2006
    Beiträge
    54
    Danke! ...habs inzwischen auch geschaft, allerdings stellt sich dann wieder das Problem: dass die Bilder nur angezeigt werden wenn man das mit dem alpha auskommentiert!

    Hier mal meine Idee um das ActionScipt zudem über den gesamten Film gehen zu lassen(indem man die jeweiligen 3 Bilder in Abhängigkeit davon wo der Film gerade steht (Bildname) anzeigen lässt):

    PHP-Code:
    //In Flash kann man doch Bildbezeichnungen geben! ich habe die Bildbezeichnungen(auch Buttons) home, about, ability usw.

    var bildbez:String="about"//initialisierung falls ich unter about meine ersten 3 bilder anzeigen möchte.
    //bildbez(Bild(name)) ist die bezeichnung der "Bilder des Flashfilms" NICHT der meiner jpg Bilder!

    if(frame.name == "ability"){      //was mach ich hier falsch
        
    bildbez="ability";  //meine Bilder haben hier den namen ability0.jpg ..- ability2.jpg
    }

    else if .... 
    usw



    for (var i:Number=0i<3i++) { 
          
    _root.createEmptyMovieClip("cl"+i,i);
          
    _root["cl" i].loadMovie(bildbez+i+".jpg",i); 

        
    _root["cl" i]._x 197 276 i//anordnen der jeweiligen 3 Bilder
        
    _root["cl" i]._y 118;
        
    //_root["cl" + i]._alpha = 0; 
    ......
    Die Bilder werden NUR angezeigt wenn ich diese Zeile (_root["cl" + i]._alpha = 0 ; )auskommentiere! (aber um einzufaden muss es ja erst alpha 0 sein!).
    wenn mans auskommentiert werden die Bilder angezeigt, gehen aber auch nicht mehr weg, egal welchen menüpunkt man klickt. Ausserdem möchte ich ja faden!?

    .....weiter im Code:
    PHP-Code:

    this
    .onEnterFrame = function() { 
        
    gesamt _root["cl" i].getBytesTotal(); 
        
    geladen _root["cl" i].getBytesLoaded(); 
        
    preloader._visible true
            
    anz._visible true 
        
    if (geladen != gesamt) { 
            
    _root.anz.text Math.round(100*geladen/gesamt)+"%"
            
    //dynamisches Textfeld mit Instanznamen "anz" muss natürlich erstellt sein ^^ 
            
    preloader._xscale 100*geladen/gesamt
        } else { 
            
    //hier müsste dann dein Script für die Größenänderung hin *gähn* man is schon spät 
                    
    anz._visible false 
            preloader
    ._visible false
            if (
    _root["cl" i]._alpha<100 && geladen == gesamt) { 
                
    _root["cl" i]._alpha += 2;  //war 10 jc 
                //je höher der Wert desto schneller "faded" das Bild ein, also je niedriger desto langsamer 
            

        } 
    };  

    Ich würde mich sehr freuen wenn ich diesen Wahnsinn heute hinter mich bringen könnte. Das alles nur um 3 Bilder anzuzeigen. Und immer wieder gehts dann doch nicht, obwohl man sich schon gefreut hat, und auch alles logisch scheint! Was mach ich jetzt noch falsch? gruß helene
    Geändert von helene1 (28.05.07 um 17:17 Uhr)
     

  9. #9
    Avatar von inctube
    inctube inctube ist offline Mitglied Gold
    Registriert seit
    Feb 2004
    Beiträge
    227
    Häng doch mal bitte deine fla an...

    gruß inctube
     
    www.m-e.biz
    ..~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~..
    Tiere sind meine Freunde und Freunde esse ich nicht (G.B. Shaw)

  10. #10
    helene1 helene1 ist offline Mitglied Silber
    Registriert seit
    Oct 2006
    Beiträge
    54
    1. bilder home0.jpg home1.jpg und home2.jpg usw (irgendwelche so bez. jpgs einfach in den gleichen ordner wie die fla)

    2.der error mit der inhalt.txt, ist egal, da steht bei mir nur irgendein text drin der als content angezeigt werden soll.

    3.alpha muss wieder auskommentiert werden, sonst zeigt es wie gesagt nie ein bild an!!?

    vielen Dank!
    Geändert von helene1 (29.05.07 um 15:19 Uhr)
     

  11. #11
    Avatar von inctube
    inctube inctube ist offline Mitglied Gold
    Registriert seit
    Feb 2004
    Beiträge
    227
    so, ich hoffe es ist so wie du es wolltest...

    gruß inctube
    Geändert von inctube (29.05.07 um 19:05 Uhr) Grund: Anhang gelöscht
     
    www.m-e.biz
    ..~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~..
    Tiere sind meine Freunde und Freunde esse ich nicht (G.B. Shaw)

  12. #12
    helene1 helene1 ist offline Mitglied Silber
    Registriert seit
    Oct 2006
    Beiträge
    54
    PHP-Code:
    on (press) {
        
    this.onEnterFrame = function () {
            
    _root.clip._alpha -= 10;
            if (
    _root.clip._alpha == 0) {
                                                    
    unloadMovie(_root.cl0);
                
    unloadMovie(_root.cl1);
                
    unloadMovie(_root.cl2);
                            
                
    delete this.onEnterFrame;
            }
        };

    Im ersten Moment (Defaultwert der Variable bildbez) werden die 3 Bilder angezeigt (unter home).

    Dann wenn man auf den nächsten Button(zB about) drückt müssen erst die Alten Bilder verschwinden(ausfaden), und dafür die neuen erscheinen.

    Versehe ich jeden Button mit der obenstehenden Fkt. so wird nur das letzt Bild "cl2" gelöscht. Und KEINE NEUEN Bilder werden angezeigt.


    Sorry, dass ich es immer noch nicht hinbekomme!







    SO WERDEN ALLE 3 BILDER "UNSICHTBAR":
    PHP-Code:
    on (press) {
        
    unloadClip(clip);
        
    unloadClip(cl1);
        
    this.onEnterFrame = function () {
            
    _root.cl0._alpha -= 10;
            
    _root.cl1._alpha -= 10;
            
    _root.cl2._alpha -= 10;
            
    //unloadMovie(_root.clip);
            //unloadClip(clip);
            /*
            if (_root.cl1._alpha == 0) {
                            unloadMovie(_root.cl2);
                            unloadMovie(_root.cl1);
                            unloadMovie(_root.cl2);
                            
                delete this.onEnterFrame;
            }
            */
        
    };

    Aber es ist, als wäre der gesamte MovieClip dennoch nicht gelöscht, da anscheinend kein neuer erzeugt werden kann Ich möchte unter den anderen Punkten ja wieder neue 3 Bilder anzeigen, das geht nicht?
    Geändert von helene1 (28.05.07 um 21:16 Uhr)
     

  13. #13
    Avatar von inctube
    inctube inctube ist offline Mitglied Gold
    Registriert seit
    Feb 2004
    Beiträge
    227
    MovieClips die dynamisch erzeugt wurden, werden mit removeMovieClip gelöscht. Das steht auch in der Hilfe. Außerdem würde ich mir an deiner Stelle ein Konzept für das ganze machen. Ich weiß jetzt auch nicht genau was das Problem ist, du wolltest doch, dass die Bilder eingefaded werden, oder?
    Warum machst du das ganze nicht einfach statisch mit alphaTwenning im MovieClip?
    Den Aufbau hast du in deiner Zeitleiste ja schon.

    gruß inctube
     
    www.m-e.biz
    ..~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~..
    Tiere sind meine Freunde und Freunde esse ich nicht (G.B. Shaw)

Ähnliche Themen

  1. [Flash MX04] loadMovie <-> loadClip - PNG extern laden
    Von Eisbaer im Forum Flash Plattform
    Antworten: 7
    Letzter Beitrag: 03.04.10, 16:15
  2. Bilder in Flash laden
    Von MrY im Forum Flash Plattform
    Antworten: 4
    Letzter Beitrag: 04.12.07, 12:45
  3. Bilder extern in Container laden
    Von gelaniee im Forum Flash Plattform
    Antworten: 15
    Letzter Beitrag: 25.11.07, 01:30
  4. Bilder extern laden
    Von Alaniak im Forum Flash Plattform
    Antworten: 5
    Letzter Beitrag: 27.07.05, 15:50
  5. Bilder Laden (Flash MX)
    Von BeastKing im Forum Flash Plattform
    Antworten: 9
    Letzter Beitrag: 26.07.02, 10:15