Saytda musiqinin nizamsız (shuffle) oxunması – MP3 Shuffle playlist

Salamlar, Actionscript-də pleylist var, lakin istəyirəm ki, mahnılar nizamsız olaraq ardıcıl olmadan oxunsun, yəni next düyməsini basdıqda sonrakı yox, hər hansı bir mahnı gəlsin, kod isə belədir:

1package com.Ub.Music
2{
3    import caurina.transitions.properties.ColorShortcuts;
4    import caurina.transitions.Tweener;
5    import com.Ub.utils.ScrollBar;
6    import com.Ub.Music.playlist.Track;
7    import flash.display.MovieClip;
8    import flash.display.Sprite;
9    import flash.events.Event;
10    import flash.events.MouseEvent;
11    import flash.net.URLLoader;
12    import flash.net.URLRequest;
13    /**
14     * ...
15     * @author Umbra
16     */
17    public class Playlist extends MusicCore
18    {
19        /*
20        * The Playlist class displays and controls playlist panel in MusicModule
21        */
22         
23        private var songArray:Array;
24        private var songList:XMLList;
25         
26        private var trackContainer:Sprite;
27        private var contMask:Sprite;
28        private var scrollbar:ScrollBar;
29        private var colorOut:uint = 0xffffff;
30        private var colorOver:uint = 0xff9966;
31         
32        public static const TRACK_CLICKED:String = "trackClicked";
33         
34         
35        public function Playlist()
36        {
37            super();
38             
39             
40        }
41     
42        override protected function init(e:Event):void
43        {
44            ColorShortcuts.init();
45            removeEventListener(Event.ADDED_TO_STAGE, init);
46            trackContainer = new Sprite();
47             
48            this.addChild(trackContainer);
49             
50            makeMaskAndScroll();
51             
52            colorOut = _xml.Settings.@playlistTextColor;
53            colorOver = _xml.Settings.@playlistTextColorOver;
54             
55             
56             
57             
58        }
59        /*CUSTOM FUNCTION CALLED WHEN PLAYLIST IN ON*/
60        override public function PLAYLIST_ON():void {
61            this._reveal();
62            updatePlaylist();
63             
64        }
65         
66        override protected function _reveal():void
67        {
68            this.alpha = 0
69            visible = true;
70            Tweener.addTween(this, {delay:1, time:1, alpha:1 } );
71        }
72         
73        private function updatePlaylist()
74        {
75            clearPlaylist();
76 
77                    songList =  _xml.Album[_currentAlbum].song;
78                    songArray = new Array();
79                    var tfHeight:Number=0;
80                    for (var i:int = 0; i < songList.length(); i++)
81                    {
82                        var track = new Track(songList[i].@title, i);
83                        track.x = 15;
84                        track.y = track.height * i + 8;
85                        trackContainer.addChild(track);
86                        tfHeight +=  track.height;
87 
88                         
89                        track._selected = false;
90                        track._discolorTrack();
91                        track.addEventListener(MouseEvent.CLICK, onTrackClick);
92                         
93                         
94                        songArray.push(track);
95                         
96                        track._showTitles();
97                    }
98                    trackContainer.height = tfHeight
99                    if ( scrollbar) scrollbar.init();
100                     
101                    (songArray[_currentSong] as Track)._selected = true;
102                    (songArray[_currentSong] as Track)._colorTrack();
103             
104        }
105         
106        private function onTrackClick(e:MouseEvent):void
107        {
108            //PREV TRACK
109            Tweener.addTween(songArray[currentSong], {_color:colorOut,time:0.3 } );
110            (songArray[_currentSong] as Track)._selected = false;
111             
112            //NEXT TRACK
113            _currentSong = (e.currentTarget as Track)._id
114            this.dispatchEvent(new Event(TRACK_CLICKED));
115             
116            Tweener.addTween(songArray[currentSong], { _color:colorOver, time:0.3 } );
117            (songArray[_currentSong] as Track)._selected = true;
118             
119             
120        }
121         
122     
123         
124        private function makeMaskAndScroll():void
125        {
126            var bgSpr:Sprite = new Sprite();
127            bgSpr.graphics.beginFill(0x000000,0.8);
128            bgSpr.graphics.drawRoundRectComplex(2, 2, 196, 196, 4, 4, 4, 4);
129            bgSpr.graphics.endFill();
130            this.addChildAt(bgSpr,0);
131            contMask = new Sprite();
132            contMask.graphics.beginFill(0x00ff00);
133            contMask.graphics.drawRect(15, 10, 180, 185);
134            contMask.graphics.endFill();
135            this.addChild(contMask);
136             
137            trackContainer.mask = contMask;
138             
139            scrollbar = new ScrollBar();
140            scrollbar.contentMask = contMask;
141            scrollbar.content = trackContainer;
142            scrollbar.x = 6;
143            scrollbar.y = 10;
144             
145            this.addChild(scrollbar);
146            scrollbar.init();
147        }
148         
149         
150        private function clearPlaylist():void
151        {
152            for (var i:int =  trackContainer.numChildren-1; i >= 0; i--)
153            {
154                trackContainer.removeChildAt(i)
155            }
156        }
157         
158         
159         
160         
161    }
162 
163}

Bilən varmı, hansı hissədə nə dəyişiklik etməliyəm? Bir çox forumlarda sual verdim, dolayı yolla izah etdilər, anlamadım.

Bilən olmasa belə, mənə bunu harda düzətməyi məsləhət görə bilərsiniz? Yəni agentlik, developer və s.

Öncədən hamıya təşəkkürlər.


Yadda saxlama
Kateqoriya: Sual . , , , . Qısa keçid.

Verilmiş cavablar və yazılan şərhlər (3 cavab var)

(17:05, 18/06/2012 ) #16782

Belə koddan demək çətindir, faylın özünü görmədən. Amma siz belə edin, private function onTrackClick(e:MouseEvent):void funksiyasında time:0.3-ü time:0.6 və ya başqa qiymətlərlə əvəz edin əllə, görün o hər hansı dəyişiklik verəcəkmi? Yəni məsələn 0.6 etdikdə növbətiyə yox, 2 daha sonrakı mahnıya keçsə deməli qanunauyğunluq tapmış olarıq və o halda kiçik bir funksiya yazıb qoyaram burda, qoşarsız bu koda, nəticədə siz deyən təsadüfi seçim imkanı yaranar.
Alınmasa da fla faylını qoyarsız bura yükləyib üstündə həll edərik.

Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır

    (13:46, 21/06/2012 ) #16980

    Təşəkkürlər Elvin, onu yoxladım alınmadı, kirupa-da demişdilər ki, array-la bağlı yeni function əlavə etməlisən, mənim AS-lə bağlı anlayışım yoxdur, bir-iki cəhd elədim alınmadı burda bütöv komponentlər var, index.html faylı “deploy” qovluğundadır, playlist.as isə src\com\Ub\Music-dədir. Öncədən təşəkkürlər.

    Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır

(23:30, 25/06/2012 ) #17119

Təəssüf ki proyekt böyük olduğundan bunu həll etmək sual-cavab saytlarının yox, freelancerlərin işidir 🙂 Amma yenə də imkan tapsam baxaram main.fla faylının strukturuna.

Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır

Bu suala aid öz sualım var:
Sual verin
Bu suala cavab vermək istəyirəm:
Cavab verin

Cavab verin


Cavab yazmaq üçün lütfən sağ sütundan və ya buradan hesaba daxil olun.

Üzvlər üçün giriş

Qeydiyyat

Elan qutusu

Son cavablar və şərhlər

E. Hacı cavab verdi - Elektron servis xidmətləri (13 gün əvvəl)

cavaninsan cavab verdi - Amerika səhmləri (22 gün əvvəl)

Software Developer cavab verdi - Amerika səhmləri (22 gün əvvəl)

SN cavab verdi - Kripto vergi (31 gün əvvəl)

Nicat97 cavab verdi - ilkaddimlar.com-a nə oldu? (38 gün əvvəl)

nicatmemmedli cavab verdi - Proqramlaşdırma - fəlsəfə (41 gün əvvəl)

nicatmemmedli cavab verdi - ilkaddimlar.com-a nə oldu? (41 gün əvvəl)

Software Developer cavab verdi - ilkaddimlar.com-a nə oldu? (52 gün əvvəl)

E. Hacı cavab verdi - Adsense ya görə VÖEN gəlir vergisi 20% istəyirlər (61 gün əvvəl)

Triste cavab verdi - Adsense ya görə VÖEN gəlir vergisi 20% istəyirlər (62 gün əvvəl)

E. Hacı cavab verdi - Adsense ya görə VÖEN gəlir vergisi 20% istəyirlər (63 gün əvvəl)

Triste cavab verdi - Adsense ya görə VÖEN gəlir vergisi 20% istəyirlər (63 gün əvvəl)

E. Hacı cavab verdi - Telefon almışam kamerasında ləkə var qaytarmaq istəyirəm, mağaza qaytarmır (63 gün əvvəl)

Software Developer cavab verdi - Rus dili yatırımı (63 gün əvvəl)

Cənab cavab verdi - Rus dili yatırımı (64 gün əvvəl)

Software Developer - 615 xal

E. Hacı - 608 xal

Onar Alili - 526 xal

Dilsuz - 448 xal

Cabbarov Sübhan - 434 xal

Maqa - 346 xal

Ruslan Butdayev - 328 xal

Namiq Bəndəli - 297 xal

U.Tarlan - 244 xal

Meherremoff - 234 xal

Sistemə daxil olmuş 23311 sualdan 92%-dən çoxu cavablandırılmışdır.

Proyekt haqqında

E-Haci.net istehsalı. © 2010-2025