Katarzyna Budka

Katarzyna Budka prowadzę włąsną
działalność,
project.bu

Temat: stop and play

potrzebuje porady jak stworzyć jeden przycisk w animacji, który po pierwszym kliknięciu zatrzymywałby całość filmiku a po następnym uruchamiałby ją. Najlepiej żeby zmieniał się tez wizualnie np. napis 'stop' po zatrzymaniu zmieniał się w napis "play".

z góry dziękuję za pomoc
Jakub Bilko

Jakub Bilko Flash/Web/Mobile
Developer

Temat: stop and play

Pierwsze rozwiązanie jakie się narzuca jest następujące:

- Tworzymy sobie movieclip z grafiką przycisku oraz etykietą w postaci pola tekstowego

- Tworzymy zmienną, która będzie przechowywała wykonaną akcję (w tym wypasku play/stop)

- Dodajemy EventListenera do przycisku, który będzie odpowiedzialny za obsługę kliknięcia:

naszprzycisk.addEventListener(MouseEvent.MOUSE_DOWN, playStop);


- Sama funkcja wygląda mniej więcej tak:


function playStop(e:MouseEvent):void
{
if (naszazmienna == "play") {
stop();
naszprzycisk_mc.poletextowe.text = "Stop";
naszazmienna = "stop";
}
else if (naszazmienna == "stop") {
play();
naszprzycisk_mc.poletextowe.text = "Play";
naszazmienna = "play";
}
}


- Pamiętamy, żeby ustawić naszej zmiennej początkową wartość


var naszazmienna:String = "play";


To jest przykład dla AS3, w AS2 zasada wygląda podobnie.
Michał Sołtys

Michał Sołtys webmaster od psd do
swf

Temat: stop and play

Witam. Bardzo prosze o pomoc....!!
Muszę zrobić odtwarzacz mp3 sterowany jednym przyciskiem(Movie Clipem) stop/play. Chciałem wykorzystać powyższy kod ale wyskakuje błąd:
TypeError: Error #1010: A term is undefined and has no properties.
at myobj::cSound/::playStop()

MC nazwałem "naszprzycisk_mc", stworzyłem w nim pole textowe jako text dynamiczny i nazwałem "poletextowe"

Oto kod z którym mam problem:

package myobj{
import flash.display.MovieClip;
import flash.net.URLRequest;
import flash.events.Event;
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.events.MouseEvent;

public class cSound extends MovieClip {
private var song:SoundChannel;
private var sound1:Sound;
private var naszazmienna:String = "play";
public function cSound():void {
var req:URLRequest = new URLRequest("plik.mp3");
sound1 = new Sound();
sound1.load(req);
naszprzycisk_mc.addEventListener(MouseEvent.MOUSE_DOWN,playStop);

}
private function playStop(e:MouseEvent):void {
if (naszazmienna == "play") {
song.stop();
naszprzycisk_mc.poletextowe.text = "Stop";
naszazmienna = "stop";
} else if (naszazmienna == "stop") {
song = sound1.play();
naszprzycisk_mc.poletextowe.text = "Play";
naszazmienna = "play";
}
}
}
}
Michał Sołtys

Michał Sołtys webmaster od psd do
swf

Temat: stop and play

Problem rozwiązany przez Jakub Bilko. Oto kod:
package myobj{
import flash.display.MovieClip;
import flash.net.URLRequest;
import flash.events.Event;
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.events.MouseEvent;
import flash.media.SoundLoaderContext;
import flash.text.TextField;

public class cSound extends MovieClip {
private var song:SoundChannel;
private var sound1:Sound;
private var naszazmienna:String = "stop";
private var cloader:SoundLoaderContext = new SoundLoaderContext(100, false);

public function cSound():void {
var req:URLRequest = new URLRequest("plik.mp3");
sound1 = new Sound();
sound1.load(req, cloader);
song = new SoundChannel();
naszprzycisk_mc.addEventListener(MouseEvent.MOUSE_DOWN,playStop);

}
private function playStop(e:MouseEvent):void {
if (naszazmienna == "play") {
song.stop();
naszprzycisk_mc.poletextowe.text = "Stop";
naszazmienna = "stop";
} else if (naszazmienna == "stop") {
song = sound1.play();
naszprzycisk_mc.poletextowe.text = "Play";
naszazmienna = "play";
}
}
}
}

Dzięki wielkie.

Następna dyskusja:

pause i play przy animacji




Wyślij zaproszenie do