Flashhilfe.de - Flash Community

Verständnisfrage und Hilfe - mehrere Sounds laden und steuern (für MCs) [Flash 9]

 


AntwortenRegistrieren Seite1  

violala#1
Benutzerbild von violala
Beiträge: 5
Registriert: Aug 2012

09.08.2012, 22:15

Hallo Leute,

ich habe jetzt schon einiges gesucht und nach gelesen, aber leider verstehe ich wohl noch zu wenig. Und zwar möchte ich meine Sounds in mein interaktives Feature laden, da ich mit sehr vielen Sounds arbeiten muss.

Jetzt habe ich einige Movieclips bei denen der Sound ausgelöst werden soll, wenn geklickt wird. Gleichzeitig wird dann der Movieclip abgespielt. (Das habe ich bereits, es geht nur um die Sounds).

Also meine Fragen.
1. Wenn ich möchte das der Sound erst ausgelöst wird, wenn man auf das entsprechenede MC geklickt hat, was genau muss ich wo rein schreiben???

2. Wenn der Sound dort abgespielt wird, kann ich Ihn wie steuern? Zum Beispiel die Länge die abgespielt werden soll oder ab welcher Stelle der Sound abgespielt werden soll?

3.1 Außerdem wollte ich wissen, wie man den Sound stoppt, ohne gleich alle Sounds zu beenden?
3.2 Auch so das wenn ich auf meiner Zeitleiste springe im nächsten Frame der Sound auch wieder aufgehoben ist?

4. Können nur MP3s geladen werden? Denn meine wav Sounds hat es nicht abgespielt..

5. Zum Timer auch noch eine Frage, sobald ich auf der Zeitleiste springe, bekomme ich in der Ausgabe eine Meldung. Wie kann ich diese denn am besten wieder aufheben? Schließlich sucht er dort nach etwas, was er dort nicht gibt und auch nicht soll.
TypeError: Error #1009: Cannot access a property or method of a null object reference.
   at Feature/phoneRingHandler()
   at flash.utils::Timer/_timerDispatch()
   at flash.utils::Timer/tick()

Ich hoffe es kann mir jemand helfen, denn alleine bekomme ich es leider einfach nicht gebacken. :-/ Vielleicht habt Ihr auch noch eine bessere Idee mit dem Umgang von den Sounds.



Das hier ist ein Probestück zu den Umgang mit den Sounds und den MCs:

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
import flash.media.Sound;
import flash.media.SoundMixer;

stop();

/******* Telefon-Timer *******/
var myTimer:Timer = new Timer(20000,2);
myTimer.start();

listenerErzeugen();

/***** Raum-Sound - soll auf dem einen frame immer abgespielt werden*****/
var myRequest:URLRequest = new URLRequest("sounds/35-AudioTrack-Raum.mp3");
var mySound:Sound = new Sound(myRequest);

mySound.addEventListener(Event.COMPLETE, completeHandler);
function completeHandler (e:Event):void{
     e.currentTarget.play();
}

var mySound3:Sound = new Sound();
var myChannel3:SoundChannel = new SoundChannel();
mySound3.load(new URLRequest("sounds/33462__pempi__button23_stehlampe.mp3"));

var mySound4:Sound = new Sound();
var myChannel4:SoundChannel = new SoundChannel();
mySound4.load(new URLRequest("sounds/09-Telephone Rings Bell-Type Ring 4 Standard.mp3"));

var mySound5:Sound = new Sound();
var myChannel5:SoundChannel = new SoundChannel();
mySound5.load(new URLRequest("sounds/36-Telephone Rotary Phone Dial 6.mp3"));

/***** Funktionen *****/
function listenerErzeugen() {
     diestehlampe.addEventListener(MouseEvent.CLICK, stehlampeClickHandler);
     dertisch.schub.addEventListener(MouseEvent.CLICK, schubClickHandler);
     myTimer.addEventListener(TimerEvent.TIMER, phoneRingHandler);
     dasphone.addEventListener(MouseEvent.CLICK, phoneClickHandler);
}

function sauberMachen() {
     diestehlampe.removeEventListener(MouseEvent.CLICK, stehlampeClickHandler);
     dertisch.schub.removeEventListener(MouseEvent.CLICK, schubClickHandler);
     myTimer.removeEventListener(TimerEvent.TIMER, phoneRingHandler);
     dasphone.removeEventListener(MouseEvent.CLICK, phoneClickHandler);
}

function stehlampeClickHandler (e:MouseEvent):void{
     sauberMachen();
     diestehlampe.gotoAndPlay("stehlampeAn");
}

function schubClickHandler (e:MouseEvent):void{
     if (dertisch.schub.currentFrame == 1) {
        dertisch.schub.gotoAndPlay("schubAuf");
        }else{
        dertisch.schub.gotoAndPlay("schubZu");
        }
}

function phoneRingHandler (event:TimerEvent):void{
     mySound4.play();
     dasphone.gotoAndPlay(1);
}

function phoneClickHandler (e:MouseEvent):void{
     dasphone.gotoAndPlay("dialNumber");
     mySound5.play();
}

Zum Glück gibt es Profis die Anfängern helfen! ^^
Werbung
Beiträge: 0
Registriert: Feb 2016


vindel#2
Benutzerbild von vindelFlashhilfe.de Moderator
Beiträge: 3000
Wohnort: Köln
Registriert: Oct 2007

10.08.2012, 10:17

Hallo,

hier findest du alle Methoden die du benutzen kannst!
http://help.adobe.com/de_DE/FlashPlatform/reference/actionscript/3/flash/media/Sound.html

1. Du musst deinen Sound anhalten, dann wird er nicht direkt abgespielt (mit "stop();")
2. Du hast immer auf dein erstelltes Objekt Zugriff (deinSound.play(100); spielt ab 100 ms ab)
3. Du musst den Stop-Befehl für dein Sound ausführen der angehalten werden soll. Um alle zu stoppen, musst du di Methode benutzen: SoundMixer.stopAll();
4. Was willst du mit Wav im Internet??
5. Du verweist auf ein Objekt (MC) der (in dem Bild) nicht vorhanden ist! Einfach den Debugger fragen - der sagt dir genau in welcher Zeile der Fehler passiert!
public Weltformel(Problem){
      if (Problem gelöst) return Lösung;
      else Weltformel(kleiners Problem);
}
violala#3
Benutzerbild von violala
Beiträge: 5
Registriert: Aug 2012

Themenautor/in

10.08.2012, 18:14

Hi hi,

vielen Dank für den Link. :)

Also Deine Antworten 2. 3. 4. habe ich verstanden, aber mein Problem 1. und 5. ist nicht wirklich gelöst.

1. Das mit dem stop(); ist mir klar und auch close();
Nur es hakt noch wo anders.

Zum Beispiel, wenn man es mit dieser Methode macht (Script) und dann eine function hat mit der gleich der Sound gestartet wird... welchen Teil muss ich in die function von zum Beispiel schubClickHandler schreiben, damit der Sound erst gestartet wird, wenn ich den EventListener von schubClickHandler ausgelöst habe?

ActionScript:
1
2
3
4
5
6
7
var myRequest:URLRequest = new URLRequest("sounds/35-AudioTrack-Raum.mp3");
var mySound:Sound = new Sound(myRequest);

mySound.addEventListener(Event.COMPLETE, completeHandler);
function completeHandler (e:Event):void{
       e.currentTarget.play();
}


und bei der Frage 5.
In dem Frame soll ja auch der Timer nicht mehr sein und dort gibt es auch nicht mehr diese function... aber ich weiß nicht an welcher Stelle und ich das entfernen soll. Geht das mit remove und wenn ja wo muss das hin?
(Auf meiner Zeitleiste befindet sich in Frame 40 ein "Raum" von dem man in einen anderen wechselt zum Beispiel auf Frame "45", dort).
Ein ähnliches Problem, habe ich auch mit der function kollision(); beim Framewechsel:

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
dieschallplatte.addEventListener(MouseEvent.MOUSE_DOWN, nehmen);
dieschallplatte.addEventListener(MouseEvent.MOUSE_UP, ablegen);
addEventListener(MouseEvent.MOUSE_MOVE, kollision);

function nehmen(e:MouseEvent):void{
     dieschallplatte.startDrag();
}
   
function ablegen(e:MouseEvent):void{
     dieschallplatte.stopDrag();
}

function kollision(e:Event):void{
     if (dieschallplatte.x > 240 && dieschallplatte.x < 300 && dieschallplatte.y > 585 && dieschallplatte.y < 645){
     dieschallplatte.stopDrag();
     dieschallplatte.x = 742;
     dieschallplatte.y = 638;
     dieschallplatte.visible = false;
     derspieler.gotoAndPlay("spielerAn");
     trace(dieschallplatte.currentFrame);
     }
}


Fehlermeldung:
at Feature/kollision()
TypeError: Error #1009: Cannot access a property or method of a null object reference.

Ps.: Tut mir leid, hoffe man versteht jetzt besser wo es hakt?
Habe mir bereits öfters zu den Sound durchgelesen wie man diese erzeugt... das habe ich auch so weit, aber dann hörts leider auch schon wieder auf.
Und auch wegen den Fehlermeldungen habe ich bereits nachgesehen, habe aber immer noch nicht die Lösung.
Vermutlich habe ich noch ein paar Grundlagen noch nicht ganz gepeilt, aber ich erhoffe mir das es besser wird, wenns mir jemand erklärt. (Nachlesen hat nicht überall funktioniert.) ;-)
Zum Glück gibt es Profis die Anfängern helfen! ^^

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