Flashhilfe.de - Flash Community

Mate Frameworkt - Injectors [Flash 10]

Forum > Apache Flex / Adobe AIR > Mate Frameworkt - Injectors

 


AntwortenRegistrieren Seite1 2  

 17.11.2009, 16:57Re16
Benutzerbild von longCrew
Beiträge: 380
Wohnort: München, Berlin
Registriert: Apr 2009

Themenautor/in

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

 17.11.2009, 17:18Re17
Benutzerbild von badskillFlashhilfe.de Moderator
Beiträge: 5285
Wohnort: Bernau (bei Berlin)
Registriert: Nov 2002

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 :)
 
nicht sichtbar bei eingeloggten Mitgliedern
 18.11.2009, 08:48Re18
Benutzerbild von longCrew
Beiträge: 380
Wohnort: München, Berlin
Registriert: Apr 2009

Themenautor/in

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
 18.11.2009, 10:38Re19
Benutzerbild von badskillFlashhilfe.de Moderator
Beiträge: 5285
Wohnort: Bernau (bei Berlin)
Registriert: Nov 2002

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?
 18.11.2009, 10:58Re20
Benutzerbild von longCrew
Beiträge: 380
Wohnort: München, Berlin
Registriert: Apr 2009

Themenautor/in

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
 
nicht sichtbar bei eingeloggten Mitgliedern1&1 Webhosting
 18.11.2009, 11:18Re21
Benutzerbild von badskillFlashhilfe.de Moderator
Beiträge: 5285
Wohnort: Bernau (bei Berlin)
Registriert: Nov 2002

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

Themenautor/in

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
 18.11.2009, 11:23Re23
Benutzerbild von badskillFlashhilfe.de Moderator
Beiträge: 5285
Wohnort: Bernau (bei Berlin)
Registriert: Nov 2002

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.
 18.11.2009, 11:27Re24
Benutzerbild von longCrew
Beiträge: 380
Wohnort: München, Berlin
Registriert: Apr 2009

Themenautor/in

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
 
Themen
Ähnliche Beiträge zum Thema
 

AntwortenRegistrieren Seite1 2  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.
Partner Webseiten: DesignerInAction.de   Designnation.de   Mediengestalter.info   php-resource.de   phpforum.de   phpwelt.de   Pixelio.de   PSD-Tutorials.de   Tutorials.de

Haftungsausschluss   Datenschutzerklärung   Hier Werben   Impressum
© 1999-2012 Sebastian Wichmann - Flashhilfe.de