Flashhilfe.de - Flash Community

Mate Frameworkt - Injectors [Flash 10]

 


AntwortenRegistrieren Seite1 2  

longCrew#17
Benutzerbild von longCrew
Beiträge: 380
Wohnort: München, Berlin
Registriert: Apr 2009

Themenautor/in

17.11.2009, 16:57

tja das wüsste ich auch gern;)

momentan liegt die ArrayCollection im PlayListManager

PlayListManager.as
ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
[Bindable] AC_Sound:ArrayCollection = new ArrayCollection();
....
....
//daten in das Array speichern
public function ID3Event(id3event:Event):void
      {
            sound = Sound(id3event.target);
            ID3 = ID3Info(sound.id3);
      
            AddSound(ID3.songName, ID3.album, ID3.artist, ID3.track, ID3.year, ID3.genre, Duration, sound.url);
                  }


//auch noch im PlaylistManager der Aufruf der AddSoundmethode

   public function AddSound(Title:String, Album:String, Artist:String, Track:String, Year:String, Genre:String, Duration:int, URL:String):void
         {   
            trace("AddSound  -----------------------------------------------------");
            
               
      var soundIndex:int = -1;
            
      var duplicateIndex:int = -1;
      
            
            
            
            trace(AC_Sound.length.toString() +"---AC_Sound.length---------------------AddSound()---");
            
            for (var i:int=0; i < AC_Sound.length; i++)
            {
            //   if (AC_Sound[m]["url"] == URL)
                if (AC_Sound[i]["url"] == URL)
               {
               soundIndex++;
               duplicateIndex++;
               }
               trace(soundIndex + "---------------------for-----------soundIndex");
               trace(duplicateIndex + "-----------------for-----------duplicateIndex");
            }
         
            
         }
         


ha du wirst es nicht glauben hab den fehler gefundne ich hab 2 mal ne instanz von AC_Sound gemacht;)

aber habe ein anderes prob:(
ich rufe z.B. musik.mp3 auf und in meiner Playlist wird dies 2 mal angezeit
also 2 mal druchlaufen ich weiss echt nicht warum er mein meine Funktion AddSound 2 mal druchläuft und somit wenn ich nur musik.mp3 aufrufe
in meiner playlist dieser 2 mal angezeigt wird

mfg seb
Die Lösung ist: das Suchen.
LongCrew = 2 people
Geändert von longCrew am 17.11.09 um 16:58 Uhr
badskill#18
Benutzerbild von badskillFlashhilfe.de Moderator
Beiträge: 5285
Wohnort: Bernau (bei Berlin)
Registriert: Nov 2002

17.11.2009, 17:18

Hm, was soll ich da jetzt schreiben?
Irgendwo wird anscheinend etwas doppelt ausgeführt.
Und wenn ich das lese:
ich hab 2 mal ne instanz von AC_Sound gemacht;)
dann ist das sogar sehr wahrscheinlich :)
longCrew#19
Benutzerbild von longCrew
Beiträge: 380
Wohnort: München, Berlin
Registriert: Apr 2009

Themenautor/in

18.11.2009, 08:48

mh ja irgendwo is der fehler --> ich sehe ihn nur nicht!!!:(

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
public function ID3Event(id3event:Event):void
      {
            sound = Sound(id3event.target);
            ID3 = ID3Info(sound.id3);
            trace(sound +"-----sound obj----------------------------------ID3Event()");
            Duration = Math.floor(sound.length);
         
         
            
            AddSound(ID3.songName, ID3.album, ID3.artist, ID3.track, ID3.year, ID3.genre, Duration, sound.url);
   
            
         }
         
      
         
      public function AddSound(Title:String, Album:String, Artist:String, Track:String, Year:String, Genre:String, Duration:int, URL:String):void
         {   
            trace("AddSound  -----------------------------------------------------");
      
               
      var soundIndex:int = -1;
            
      var duplicateIndex:int = -1;
         
            
            
            trace(soundIndex+"-----------------------------------------soundIndex");
            trace(duplicateIndex+"-------------------------------------duplicateIndex");
            
            trace(AC_Sound.length.toString() +"---AC_Sound.length---------------------AddSound()---");
            
            for (var i:int=0; i < AC_Sound.length; i++)
            {
               trace("for ------------addSound()");
   
            trace(AC_Sound.getItemIndex(m) +"das index");  */
               if (duplicateIndex >= 0)
               {
                  if (Duration > AC_Sound[duplicateIndex]["duration"])
                  {
                     AC_Sound.removeItemAt(duplicateIndex);
                     AC_Sound.addItemAt({title: Title, album: Album, artist: Artist, track: Track, year: Year, genre: Genre, duration: Duration, url:URL}, duplicateIndex);
                     trace("IF ------------addSound()");
                  }
               }
               else
               {
               AC_Sound.addItem({title: Title, album: Album, artist: Artist, track: Track, year: Year, genre: Genre, duration: Duration, url:URL});
                  trace("else ------------addSound()");
               }
         //   soundIndex++;
         //   duplicateIndex++;
            
               trace(soundIndex + "--------------------addSound-----------soundIndex");
               trace(duplicateIndex + "----------------addSound-----------duplicateIndex");
         }


er ruft ID3Event auf dann geht er ihn addSound und dann nochmal das gleiche spiel -> id3Event wird aufgerufen --> danach AddSound
--> folge: 2 mal wird der Sound z.B. musik.mp3 angezeigt....

ich gebe doch keine befehl in addSound das er nochmal den Id3Event aufrufen soll!!!
das is ja das prob weil diese methode nochmal aufgerufen wird fügt er den sound nochmal zur Playlist.. ich sehe aber den fehler net


ich hoff du kannst mir weiterhelfen

mfg
Die Lösung ist: das Suchen.
LongCrew = 2 people
Werbung
Beiträge: 0
Registriert: Feb 2016


badskill#20
Benutzerbild von badskillFlashhilfe.de Moderator
Beiträge: 5285
Wohnort: Bernau (bei Berlin)
Registriert: Nov 2002

18.11.2009, 10:38

Moin,
ich sehe da jetzt auch keinen Hinweis, warum ID3Event zweimal aufgerufen wird.
Ich denke das Problem liegt ausserhalb der Funktion.
Fügst du vielleicht irgendwo zwei Listener hinzu?
longCrew#21
Benutzerbild von longCrew
Beiträge: 380
Wohnort: München, Berlin
Registriert: Apr 2009

Themenautor/in

18.11.2009, 10:58

mh ..
also ich dispatch den Event openFilesystem in meiner PlayListView
in der EventMap wird dann die methode openFileSystem in PlayListManager aufgerufen..
ich erezuge ein neues Fiele -> wenn welche selected werden wird loadFies aufgerufen.

In dieser Methode geschiet dan folgendes
ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
      public function loadFiles(files:Array):void
      {         
            var file:File;
            trace(file+"----------------------------------------------------------loadFiles()")
            
            selectedFileCount = 0;

            for (var i:uint = 0; i < files.length; i++)
            {
               file = files[i];
               selectedFileCount++;
               trace (selectedFileCount +"-------------------------selectedFileCount------loadFiles()");
            }

         

            index = -1;
         
             for(var j:uint = 0; j < files.length; j++)
             {
               file = files[j];
                  trace(files[j]+"------------------------------files[j]---loadFiles");
                  sound = new Sound(new URLRequest(file.url));
                  sound.addEventListener(Event.ID3, ID3Event);
                  trace (sound +"----------------------------------in loadFiles()")
                  index++;
                  trace(index + "-------------index-------------------for--------loadFiles");
             }
         
          
      }


aber hier fällt mir jetzt auch nix auf warum er ID3Event 2 mal aufruft ich erezuge ein neus sound Obj und fülle es wenn mehrere Files augewählt wurden
wird jetz nur ein file ausgewählt muss er ja die vor schleife nur 1mal durchlaufen....
aber anscheinend läuft er diese 2mal durch denn ID3Event  wird ja 2mal aufgerufen...........
Die Lösung ist: das Suchen.
LongCrew = 2 people
badskill#22
Benutzerbild von badskillFlashhilfe.de Moderator
Beiträge: 5285
Wohnort: Bernau (bei Berlin)
Registriert: Nov 2002

18.11.2009, 11:18

Entferne mal den ID3-Listener in der Funktion ID3Event:
ActionScript:
1sound.removeEventListener(Event.ID3, ID3Event);
longCrew#23
Benutzerbild von longCrew
Beiträge: 380
Wohnort: München, Berlin
Registriert: Apr 2009

Themenautor/in

18.11.2009, 11:22

mensch genau das wars...ich hatte schon mal in nen früheren proj probs mit den remove/add EventListener
aber ich habe es mal wieder total vergessen das man hier auch immer einen EventL removen solle......

danke nochmal;)
Die Lösung ist: das Suchen.
LongCrew = 2 people
badskill#24
Benutzerbild von badskillFlashhilfe.de Moderator
Beiträge: 5285
Wohnort: Bernau (bei Berlin)
Registriert: Nov 2002

18.11.2009, 11:23

Erklärt zwar dennoch nicht, warum die Funktion zweimal aufgerufen wird, das Soundobjekt muss ja aus irgendeinem Grund das Event zweimal dispatchen. Aber wenn es jetzt funktioniert soll es so erstmal reichen.
longCrew#25
Benutzerbild von longCrew
Beiträge: 380
Wohnort: München, Berlin
Registriert: Apr 2009

Themenautor/in

18.11.2009, 11:27

ja hauptsache es funkt erst mal, aber ich schaue mir das nochmal genau an warum es 2mal dispatch wird....weil ich das auch komisch finde...was hab ich da nur wieder zusammengecoded;)
ich meld mich wieder falls ich jemals drauf kommen soll...
danke nochmal
Die Lösung ist: das Suchen.
LongCrew = 2 people

AntwortenRegistrieren Seite1 2  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Partner Webseiten: art-and-law.de  Mediengestalter.info   php-resource.de   phpforum.de   phpwelt.de   Pixelio.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Hier Werben   Impressum
© 1999-2019 Sebastian Wichmann - Flashhilfe.de