Flashhilfe.de - Flash Community

Sound bei bestimmter Mausposition abspielen [Flash 9]

 


AntwortenRegistrieren Seite1  

Jule88#1
Benutzerbild von Jule88
Beiträge: 43
Wohnort: Leonberg
Registriert: Jan 2010

01.06.2010, 20:16

Hallo zusammen,

ich versuche gerade einen Sound abspielen zu lassen, wenn die Maus sich an einer bestimmten x-Position befindet. Die Position erkennt er auch, und gibt sie über die Ausgabe heraus. Jedoch wird der Sound nicht gestartet. Wo liegt da der Fehler? Ich finde es leider nicht.

Vielen Dank schon einmal für die Hilfe!

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
var xachse;
var yachse;
var lied1 = new Sound();
lied1.loadSound("Musik/Dudu.mp3", true);

var mouseListener:Object = new Object();
mouseListener.onMouseMove = function() {
 
    xachse = _xmouse;
   yachse = _ymouse;
   
   box1_txt.text = xachse;
   
   if (xachse > 99) {
      lied1.start();
      trace (xachse);
   };
      
};
Mouse.addListener(mouseListener);


Viele Grüße Jule
Jule88#2
Benutzerbild von Jule88
Beiträge: 43
Wohnort: Leonberg
Registriert: Jan 2010

Themenautor/in

01.06.2010, 21:27

Ok es hat jetzt doch noch geklappt. Der Sound wird jetzt abgespielt, wenn die Maus sich in einem bestimmten Bereich befindet.
Jetzt hab ich jedoch das Problem, dass wenn ich die Maus weiter bewege der Sound immer wieder von vorne abspielt wird, bevor er zu Ende ist. Wie kann ich es lösen, das es erst bis zum Ende abgespielt?

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var xachse;
var yachse;
var lied1 = new Sound();
lied1.loadSound("Musik/Dudu.mp3", true);
lied1.stop();

var mouseListener:Object = new Object();
mouseListener.onMouseMove = function() {
 
    xachse = _xmouse;
   yachse = _ymouse;
   
   box1_txt.text = xachse;
   
   if (xachse > 99 && xachse < 231) {
      lied1.start();
      trace (xachse);
   };
      
};
Mouse.addListener(mouseListener);


Vielen Dank! Grüße, Jule
daxs#3
Benutzerbild von daxs
Beiträge: 189
Wohnort: Rostock
Registriert: Jan 2007

02.06.2010, 13:14

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
var xachse;
var yachse;
var lied1 = new Sound();
lied1.loadSound("Musik/Dudu.mp3", true);
lied1.stop();

var mouseListener:Object = new Object();
mouseListener.onMouseMove = function() {

    xachse = _xmouse;
  yachse = _ymouse;
 
  box1_txt.text = xachse;
 
  if (xachse >= 99 && xachse <= 231) {
      lied1.start();
      trace (xachse);
  } else {
lied1.stop();
}
     
};
Mouse.addListener(mouseListener);
Geändert von daxs am 02.06.10 um 13:15 Uhr
Jule88#4
Benutzerbild von Jule88
Beiträge: 43
Wohnort: Leonberg
Registriert: Jan 2010

Themenautor/in

02.06.2010, 13:23

Danke für deine Antwort.
Jedoch hat es leider nichts geändert. Wenn ich in das Feld die Maus reinbewege wird der Sound abgespielt aber startet sofort wieder von vorne, wenn ich die Maus in dem Feld weiterbewege und wird nicht bis zum Ende abgespielt.

Ist es möglich einzustellen, dass der Sound ersteinmal bis zum Ende abgespielt wird, auch wenn man die Maus in dem Feld weiterbewegt?
daxs#5
Benutzerbild von daxs
Beiträge: 189
Wohnort: Rostock
Registriert: Jan 2007

02.06.2010, 13:40

Alles klar. jetzt weiß ich was du meinst: Du musst per variable feststellen, ob der sound schon abgespielt wird:

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
_root.playing=0
var xachse;
var yachse;
var lied1 = new Sound();
lied1.loadSound("Musik/Dudu.mp3", true);
lied1.stop();

var mouseListener:Object = new Object();
mouseListener.onMouseMove = function() {
    xachse = _xmouse;
    yachse = _ymouse;
    box1_txt.text = xachse;

  if (xachse >= 99 && xachse <= 231) {
        if(_root.playing==0){
            lied1.start();
            _root.playing=1;
            trace (xachse);
        }
  } else {
          lied1.stop();
          _root.playing=0
  }   
};
Mouse.addListener(mouseListener);
Geändert von daxs am 02.06.10 um 13:42 Uhr
Jule88#6
Benutzerbild von Jule88
Beiträge: 43
Wohnort: Leonberg
Registriert: Jan 2010

Themenautor/in

02.06.2010, 14:02

Super! Vielen Dank!

Jetzt spielt er das Lied bis zum Ende. Jedoch wird es wenn man aus das Feld rauskommt gleich wieder gestoppt.

Kurz zu dem, was ich am Ende haben möchte: Ich habe mehrere Felder, denen jeweils ein anderer Sound zugeordnet ist. Und immer wenn man in ein Feld kommt, soll der Sound abgespielt werden bis zum Ende (so wie es jetzt ist). Wenn ich dann in das nächste Feld rübergehe, soll dann auch dort der Sound abgespielt werden. Allerdings soll der Sound vom ersten Feld dann nicht gestoppt werden, sondern trotzdem weiterhin bis zum Ende spielen, so dass sie sich auch überlagern können die Sounds

Wie kann ich das Problem dann noch lösen?

Ich hoffe du verstehst was ich meine :)
daxs#7
Benutzerbild von daxs
Beiträge: 189
Wohnort: Rostock
Registriert: Jan 2007

02.06.2010, 14:18

Nimm mal beim

ActionScript:
1
2
3
4
else {
          lied1.stop();
          _root.playing=0
  }


das

ActionScript:
1lied1.stop();


raus.

Spielt er das lied jetzt zu ende ohne es danach zu wiederholen?
Geändert von daxs am 02.06.10 um 14:21 Uhr
daxs#8
Benutzerbild von daxs
Beiträge: 189
Wohnort: Rostock
Registriert: Jan 2007

02.06.2010, 14:20

Dann musst du noch verschiedene lieder definieren (für die buttons) bzw. das gleiche lied in unterschiedliche sounds reinlegen. Diese sounds musst du dann jeweils mit den buttons ansteuern:

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
lied1.loadSound("Musik/Dudu.mp3", true);
lied2.loadSound("Musik/Dadu.mp3", true);
lied3.loadSound("Musik/Didu.mp3", true);
lied4.loadSound("Musik/Dodu.mp3", true);

//oder

lied1.loadSound("Musik/Dudu.mp3", true);
lied2.loadSound("Musik/Dudu.mp3", true);
lied3.loadSound("Musik/Dudu.mp3", true);
lied4.loadSound("Musik/Dudu.mp3", true);

Geändert von daxs am 02.06.10 um 14:21 Uhr
Jule88#9
Benutzerbild von Jule88
Beiträge: 43
Wohnort: Leonberg
Registriert: Jan 2010

Themenautor/in

02.06.2010, 15:57

Vielen lieben Dank, jetzt ist es genau so, wie ich es wollte :)

Hier mal der Code wie es jetzt aussieht:

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
_root.playing=0
var xachse;
var yachse;

var lied1 = new Sound();
var lied2 = new Sound();

lied1.loadSound("Musik/sound1.mp3", true);
lied2.loadSound("Musik/sound2.mp3", true);

lied1.stop();
lied2.stop();

var mouseListener:Object = new Object();
mouseListener.onMouseMove = function() {
    xachse = _xmouse;
    yachse = _ymouse;
    box1_txt.text = xachse;

  if (xachse >= 99 && xachse <= 231) {
        if(_root.playing==0){
            lied1.start();
            _root.playing=1;
        }
  } else {
          _root.playing=0
  } 
 
  if (xachse >= 299 && xachse <= 431) {
        if(_root.playing==0){
            lied2.start();
            _root.playing=1;
        }
  } else {
          _root.playing=0
  }
};
Mouse.addListener(mouseListener);


Ich muss das ganze jetzt nur noch mit 80 Sounds machen. Irgendwie kürzer schreiben kann man das nicht oder, das ich den Code etwas verkürzen kann bei 80 Sounds?
daxs#10
Benutzerbild von daxs
Beiträge: 189
Wohnort: Rostock
Registriert: Jan 2007

02.06.2010, 16:35

Naja vielleicht mit einer for-Schleife...
Jule88#11
Benutzerbild von Jule88
Beiträge: 43
Wohnort: Leonberg
Registriert: Jan 2010

Themenautor/in

03.06.2010, 18:31

Ok, viele Dank nochmal! Hast mir sehr geholfen :)

AntwortenRegistrieren Seite1  

Schnellantwort

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

 
Ähnliche Beiträge zum Thema
Das Leben geht weiter [Flash CS5] 12.01.2021 - Indy_Crossover
Partner Webseiten: art-and-law.de  Mediengestalter.info   phpwelt.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Impressum
© 1999-2021 Sebastian Wichmann - Flashhilfe.de