Flashhilfe.de - Flash Community

Volumeslider wie Seekbar - Problem [Flash 10]

 


AntwortenRegistrieren Seite1  

tfob123#1
Benutzerbild von tfob123
Beiträge: 15
Registriert: Oct 2010

03.01.2011, 19:49

Hallo,

ich habe versuche schon seit einiger Zeit einen Volume-Slider zu erstellen. Im Internet findet man nur Tutorials zu solchen Slidern "http://www.youtube.com/watch?v=b6FmgrhLp3s".
Also, wo die Position des Rechtecks ermittelt wird, und somit die Lautstärke angepasst wird.

Ich möchte allerdings eine Art Seek-Slider erstellen, sprich er soll so funktionieren wie die SeekBar bei Videos, z.B. auf Youtube.

Alle meine Versuche, den normalen Slider auf diese Art Slider zu "übersetzen" schlugen fehl.
Ich hoffe ihr könnt mir helfen.

Ich bin diesem Tutorial gefolgt. Der Code ist ebenfalls auf der Seite.

http://blog.0tutor.com/post.aspx?id=202&titel=Mp3-player-with-volume-slider-using-Actionscript-3.

Ich benutze ActionScript 3.0 und Flash CS5.

Vielen Dank schonmal im Voraus!

EDIT: Ich möchte das ganze statt horizontal vertikal machen.
Geändert von tfob123 am 03.01.11 um 19:54 Uhr
Werbung
Beiträge: 0
Registriert: Feb 2016


RustyCake#2
Benutzerbild von RustyCake
Beiträge: 1776
Wohnort: Laimbach 6 1/2
Registriert: Nov 2002

03.01.2011, 20:43

Versteh ich nicht, was möchtest Du genau, die Links sagen nicht wirklich was aus.
Bei YouTube fahren die Volume-Slider erst aus bei RollOver, meinst Du das?
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muss erst gehen lernen"
tfob123#3
Benutzerbild von tfob123
Beiträge: 15
Registriert: Oct 2010

Themenautor/in

03.01.2011, 23:53

Ich möchte ungefähr so einen Slider haben: http://www.martin-grohs.com/
RustyCake#4
Benutzerbild von RustyCake
Beiträge: 1776
Wohnort: Laimbach 6 1/2
Registriert: Nov 2002

04.01.2011, 00:02

Aha. Ich möchte auch so einiges ;-)
Hast Du schon irgendwas entworfen, gebastelt oder gecodet, was man sich anschauen könnte?
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muss erst gehen lernen"
Werbung
Beiträge: 0
Registriert: Feb 2016


tfob123#5
Benutzerbild von tfob123
Beiträge: 15
Registriert: Oct 2010

Themenautor/in

04.01.2011, 00:23

Hier ist der Quellcode. Ich habe es schon fast hinbekommen, aber leider nur durch Maskieren und Drehen des DisplayObjects. Aber ich glaube, dass geht auch noch "professioneller" :-).

Die Musik wird über XML geladen...

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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
import flash.events.MouseEvent;
import flash.display.DisplayObject;
import flash.geom.Rectangle;


////MP3-Player////
var my_songs:XMLList;
var my_total:Number;
var my_sound:Sound;
var my_channel:SoundChannel;
var current_song:Number = 0;
var song_position:Number;
var song_paused:Boolean;
//var volumeAdjust:SoundTransform = new SoundTransform();

var myXMLLoader:URLLoader = new URLLoader();
myXMLLoader.load(new URLRequest("playlist.xml"));
myXMLLoader.addEventListener(Event.COMPLETE, processXML);

//----------------------------------\\

PlayBtn.visible = false;

function processXML(e:Event):void {
     var myXML:XML = new XML(e.target.data);
 
     my_songs = myXML.SONG;
     my_total = my_songs.length();
 
     playSong(0);
 
     myXMLLoader.removeEventListener(Event.COMPLETE, processXML);
     myXMLLoader = null;
}

function playSong(mySong:Number):void {
     var myTitle = my_songs[mySong].@TITLE;
     var myArtist = my_songs[mySong].@ARTIST;
     var myURL = my_songs[mySong].@URL;
     
     var Artist:String = myArtist;
     var Title:String = myTitle;
     
     //Artist- und Songname werden in die Variable gespeichert, die sich im Hauptfile befinden.
   MovieClip(parent).playingSong = myTitle;
     MovieClip(parent).playingArtist = myArtist;
     
     if (my_channel) {
        my_channel.stop();
        my_channel.removeEventListener(Event.SOUND_COMPLETE, onNext);
     }
 
     my_sound = new Sound();
     my_sound.load(new URLRequest(myURL));
     my_channel = my_sound.play();
     my_channel.addEventListener(Event.SOUND_COMPLETE, onNext);
}

NextBtn.addEventListener(MouseEvent.CLICK, onNext);
function onNext(e:Event):void {
     current_song++;
     if (current_song>=my_total) {
        current_song=0;
     }
     playSong(current_song);
}
PrevBtn.addEventListener(MouseEvent.CLICK, onPrev);
function onPrev(e:MouseEvent):void {
     current_song--;
     if (current_song<0) {
        current_song = my_total-1;
     }
     playSong(current_song);
}

PauseBtn.addEventListener(MouseEvent.CLICK, onPause);
function onPause(e:MouseEvent):void {
     if (my_channel) {
        song_position = my_channel.position;
        my_channel.stop();
        song_paused=true;
     }
     
     PlayBtn.visible = true;
     PauseBtn.visible = false;
}

PlayBtn.addEventListener(MouseEvent.CLICK, onPlay);
function onPlay(e:MouseEvent):void {
     if (song_paused) {
        my_channel = my_sound.play(song_position);
        song_paused=false;
     } else if (!my_channel) {
        playSong(current_song);
     }
     
     PlayBtn.visible = false;
     PauseBtn.visible = true;
}
/* alter Code
VolDownBtn.addEventListener(MouseEvent.CLICK, VolDownSong);
function VolDownSong(e:MouseEvent):void{
   volumeAdjust.volume -= .2;
   
   if(volumeAdjust.volume >= 0) {
      my_channel.soundTransform = volumeAdjust;
   } else {
      volumeAdjust.volume = 0;
      my_channel.soundTransform = volumeAdjust;
   }
}

//Volume Up
VolUpBtn.addEventListener(MouseEvent.CLICK, VolUpSong);
function VolUpSong(e:MouseEvent):void{
   volumeAdjust.volume += .2;
   
   if(volumeAdjust.volume <= 1) {
      my_channel.soundTransform = volumeAdjust;
   } else {
      volumeAdjust.volume = 1;
      my_channel.soundTransform = volumeAdjust;
   }
}
*/


var rectangle:Rectangle = new Rectangle(0, 0, 100, 0);
var dragging:Boolean = false

MovieClip(parent).volume_mc.mySlider_mc.buttonMode = true;
MovieClip(parent).volume_mc.mySlider_mc.x = 45;

MovieClip(parent).volume_mc.mySlider_mc.addEventListener(MouseEvent.MOUSE_DOWN, startDragging); 
function startDragging(event:Event):void {
 
     // here we tell flash the margin on where it should be able to drag, (remember 100 pixels back and forth) 
   MovieClip(parent).volume_mc.mySlider_mc.startDrag(false,rectangle);//startDrag(false,rectangle); 
   dragging = true
     
     // This is very important, an eventlistener so we can change the volume, not only make it look good. 
   MovieClip(parent).volume_mc.mySlider_mc.addEventListener(Event.ENTER_FRAME, adjustVolume2);

 
// well here is the adjust volume function, its not that complicated 
function adjustVolume2(event:Event):void
     
     // we make a variable to calculate the volume from the slider handle position and divide it by 100 
   var myVol:Number = MovieClip(parent).volume_mc.mySlider_mc.x /50;
     //volume_mc.mySlider_mc.width = myVol;
   // then we set it with the mySoundTransform 
   var volumeAdjust:SoundTransform = new SoundTransform(myVol); 
     if (my_channel != null) { 
        my_channel.soundTransform = volumeAdjust; 
     }

   
// and of cause the stop draggin function, I dont feel the need to explain it. 
stage.addEventListener(MouseEvent.MOUSE_UP, stopDragging); 
function stopDragging(event:Event):void
     if (dragging) { 
         dragging = false
      MovieClip(parent).volume_mc.mySlider_mc.stopDrag(); 
     } 
}


Angehängte Dateien:
Adobe Flash Quelldatei VOLUME-TESTTESTTEST.fla17.22 KB
Geändert von tfob123 am 04.01.11 um 00:26 Uhr
RustyCake#6
Benutzerbild von RustyCake
Beiträge: 1776
Wohnort: Laimbach 6 1/2
Registriert: Nov 2002

04.01.2011, 12:30

Was ist an Maskieren und drehen eines Objekts unprofessionell ?
Wenn es funktioniert, passt das doch.
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muss erst gehen lernen"

AntwortenRegistrieren Seite1  

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