My first AS3 and I want to confirm I’m not going in the wrong direction.
Is this really how much we have to add or am I making this harder then it needs to be.
Thanks in advance.
PS Is there a naming convention for the 'listener functions that has become standard, because I’m all over the place.
import flash.events.MouseEvent;
import flash.events.Event;
TestMovie_mc.addEventListener(Event.ENTER_FRAME, eachFrame);
sliderBar_mc.scrubber_mc.addEventListener(MouseEvent.MOUSE_DOWN, scrubberMouseClick);
TestMovie_mc.addEventListener(MouseEvent.MOUSE_DOWN, mouseClickMovieStop);
sliderBar_mc.sliderBarBase_mc.addEventListener(MouseEvent.MOUSE_DOWN, scrubberBarMouseClick);
//fired when mouse clicks the scrubber bar, but not the scrubber, while video is playing
function scrubberBarMouseClick(e:Event):void {
e.target.parent.scrubber_mc.x = stage.mouseX - 110;
e.target.parent.parent.TestMovie_mc.gotoAndPlay(Math.round((e.target.parent.scrubber_mc.x/e.target.width)*(e.target.parent.parent.TestMovie_mc.totalFrames)));
}
//fired when mouse clicks video, stopping it from playing
function mouseClickMovieStop(e:Event):void {
e.target.parent.sliderBar_mc.sliderBarBase_mc.removeEventListener(MouseEvent.MOUSE_DOWN, scrubberBarMouseClick);
e.target.parent.sliderBar_mc.scrubber_mc.removeEventListener(MouseEvent.MOUSE_DOWN, scrubberMouseClick);
e.target.removeEventListener(MouseEvent.MOUSE_DOWN, mouseClickMovieStop);
e.target.stop();
e.target.addEventListener(MouseEvent.MOUSE_DOWN, mouseClickMovieStopResume);
e.target.parent.sliderBar_mc.sliderBarBase_mc.addEventListener(MouseEvent.MOUSE_DOWN, eachFrameScrubbed);
e.target.parent.sliderBar_mc.scrubber_mc.addEventListener(MouseEvent.MOUSE_DOWN, scrubberMouseDownWhilePaused);
}
//fired when mouse clicks scrubber bar, not scrubber, when movie is paused by clicking video
function scrubberMouseDownWhilePaused(e:Event):void {
e.target.parent.parent.TestMovie_mc.addEventListener(MouseEvent.MOUSE_MOVE, eachFrameScrubbed);
e.target.parent.parent.TestMovie_mc.addEventListener(MouseEvent.MOUSE_UP, stopScrubberMouseDownWhilePaused);
}
//fired when mouse unclicks, after firing off scrubberMouseDownWhilePaused
function stopScrubberMouseDownWhilePaused(e:Event):void {
e.target.removeEventListener(MouseEvent.MOUSE_MOVE, eachFrameScrubbed);
e.target.removeEventListener(MouseEvent.MOUSE_UP, stopScrubberMouseDownWhilePaused);
}
//fired when mouse clicks on video, after video had been paused by clicking the video. Starts back up video
function mouseClickMovieStopResume(e:Event):void {
e.target.removeEventListener(MouseEvent.MOUSE_DOWN, mouseClickMovieStopResume);
e.target.parent.sliderBar_mc.scrubber_mc.removeEventListener(MouseEvent.MOUSE_DOWN, scrubberMouseDownWhilePaused);
e.target.parent.sliderBar_mc.sliderBarBase_mc.removeEventListener(MouseEvent.MOUSE_DOWN, eachFrameScrubbed);
e.target.parent.sliderBar_mc.scrubber_mc.addEventListener(MouseEvent.MOUSE_DOWN, scrubberMouseClick);
e.target.addEventListener(MouseEvent.MOUSE_DOWN, mouseClickMovieStop);
e.target.parent.sliderBar_mc.sliderBarBase_mc.addEventListener(MouseEvent.MOUSE_DOWN, scrubberBarMouseClick);
e.target.play();
}
//fired when mouse clicks scrubber, while video is playing
function scrubberMouseClick(e:Event):void {
e.target.parent.parent.TestMovie_mc.removeEventListener(MouseEvent.MOUSE_DOWN, mouseClickMovieStop);
e.target.removeEventListener(MouseEvent.MOUSE_DOWN, scrubberMouseClick);
e.target.parent.sliderBarBase_mc.addEventListener(MouseEvent.MOUSE_DOWN, scrubberBarMouseClick);
e.target.parent.parent.TestMovie_mc.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveFromScrubber);
e.target.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveFromScrubberOverBar);
e.target.parent.parent.TestMovie_mc.addEventListener(MouseEvent.MOUSE_DOWN, mouseReleaseScrubberFromMovie);
e.target.addEventListener(MouseEvent.MOUSE_DOWN, mouseClickScrubberToPlay);
e.target.parent.parent.TestMovie_mc.stop();
}
//fires whenever normal playing is allowed, to keep scrubber synched with playhead location
function eachFrame(e:Event):void {
sliderBar_mc.scrubber_mc.x = ((260 / 100) * ((100 / TestMovie_mc.totalFrames) * TestMovie_mc.currentFrame)) - 5;
}
//control to move scrubber, and in turn the video to equivelant frame, when mouse moves. DOES NOT PLAY, just goes to and stops
function eachFrameScrubbed(e:Event):void {
switch (e.target.name) {
case "scrubber_mc" :
if ((stage.mouseX >= e.target.parent.sliderBarBase_mc.x-15) && (stage.mouseX <= (e.target.parent.sliderBarBase_mc.x + e.target.parent.sliderBarBase_mc.width-15))) {
e.target.x = stage.mouseX - 110 ;//115
}
e.target.parent.parent.TestMovie_mc.gotoAndStop(Math.round((e.target.x/e.target.parent.sliderBarBase_mc.width)*(e.target.parent.parent.TestMovie_mc.totalFrames)));
break;
case "sliderBarBase_mc" :
if ((stage.mouseX >= e.target.x-15) && (stage.mouseX <= (e.target.x + e.target.width-15))) {
e.target.parent.scrubber_mc.x = stage.mouseX - 115;
}
e.target.parent.parent.TestMovie_mc.gotoAndStop(Math.round((e.target.parent.scrubber_mc.x/e.target.width)*(e.target.parent.parent.TestMovie_mc.totalFrames)));
break;
case "TestMovie_mc" :
if ((stage.mouseX >= e.target.parent.sliderBar_mc.sliderBarBase_mc.x-15) && (stage.mouseX <= (e.target.parent.sliderBar_mc.sliderBarBase_mc.x + e.target.parent.sliderBar_mc.sliderBarBase_mc.width-15))) {
e.target.parent.sliderBar_mc.scrubber_mc.x = stage.mouseX - 115 ;
}
e.target.gotoAndStop(Math.round((e.target.parent.sliderBar_mc.scrubber_mc.x/e.target.parent.sliderBar_mc.sliderBarBase_mc.width)*(e.target.totalFrames)));
break;
}
}
//fires off when mouse moves, after clicking scrubber, to have scrubber follow mouse location, while video is playing
function mouseMoveFromScrubber(e:Event):void {
e.target.removeEventListener(Event.ENTER_FRAME, eachFrame);
if ((stage.mouseX >= e.target.parent.sliderBar_mc.sliderBarBase_mc.x-15) && (stage.mouseX <= (e.target.parent.sliderBar_mc.sliderBarBase_mc.x + e.target.parent.sliderBar_mc.sliderBarBase_mc.width-15))) {
e.target.parent.sliderBar_mc.scrubber_mc.x = e.target.mouseX - 115 ;
}
e.target.parent.sliderBar_mc.scrubber_mc.addEventListener(Event.ENTER_FRAME, eachFrameScrubbed);
}
//scrubber: Mouse Moves from it after clicking on it and pausing video
function mouseMoveFromScrubberOverBar(e:Event):void{
e.target.parent.parent.removeEventListener(Event.ENTER_FRAME, eachFrame);
e.target.removeEventListener(MouseEvent.MOUSE_MOVE, mouseMoveFromScrubberOverBar);
if ((stage.mouseX >= e.target.parent.sliderBarBase_mc.x-15) && (stage.mouseX <= (e.target.parent.sliderBarBase_mc.x + e.target.parent.sliderBarBase_mc.width-15))) {
e.target.x = e.target.mouseX;
}
e.target.addEventListener(Event.ENTER_FRAME, eachFrameScrubbed);
e.target.addEventListener(MouseEvent.MOUSE_DOWN, mouseClickedScrubberToStartVideo);
}
//scrubber : Click on scrubber, while paused by clicking scrubber, to start back up video play
function mouseClickedScrubberToStartVideo(e:Event):void{
e.target.removeEventListener(MouseEvent.MOUSE_DOWN, mouseClickedScrubberToStartVideo);
e.target.parent.parent.TestMovie_mc.play()
e.target.removeEventListener(Event.ENTER_FRAME, eachFrameScrubbed);
e.target.parent.parent.addEventListener(Event.ENTER_FRAME, eachFrame);
}
//fired when mouse releases scrubber drag from movie object, while video is paused
function mouseReleaseScrubberFromMovie(e:Event):void {//fired from movie
e.target.removeEventListener(MouseEvent.MOUSE_MOVE, mouseMoveFromScrubber);//movie
e.target.removeEventListener(MouseEvent.MOUSE_DOWN, mouseReleaseScrubberFromMovie);//movie
e.target.parent.sliderBar_mc.scrubber_mc.removeEventListener(MouseEvent.MOUSE_DOWN, mouseClickScrubberToPlay);//scrubber
e.target.parent.sliderBar_mc.scrubber_mc.removeEventListener(Event.ENTER_FRAME, eachFrameScrubbed);//scrubber
e.target.play();
e.target.addEventListener(MouseEvent.MOUSE_DOWN, mouseClickMovieStop);
e.target.addEventListener(Event.ENTER_FRAME, eachFrame);
e.target.parent.sliderBar_mc.scrubber_mc.addEventListener(MouseEvent.MOUSE_DOWN, scrubberMouseClick);
e.target.parent.sliderBar_mc.sliderBarBase_mc.addEventListener(MouseEvent.MOUSE_DOWN, scrubberBarMouseClick);
}
//fired when mouse releases scrubber
function mouseClickScrubberToPlay(e:Event):void {//fired from mc_scrubber
e.target.parent.parent.TestMovie_mc.removeEventListener(MouseEvent.MOUSE_MOVE, mouseMoveFromScrubber);
e.target.parent.parent.TestMovie_mc.removeEventListener(MouseEvent.MOUSE_DOWN, mouseReleaseScrubberFromMovie);
e.target.removeEventListener(MouseEvent.MOUSE_DOWN, mouseClickScrubberToPlay);
e.target.removeEventListener(Event.ENTER_FRAME, eachFrameScrubbed);
e.target.play();
e.target.parent.parent.TestMovie_mc.addEventListener(MouseEvent.MOUSE_DOWN, mouseClickMovieStop);
e.target.parent.parent.TestMovie_mc.addEventListener(Event.ENTER_FRAME, eachFrame);
e.target.addEventListener(MouseEvent.MOUSE_DOWN, scrubberMouseClick);
e.target.parent.sliderBarBase_mc.addEventListener(MouseEvent.MOUSE_DOWN, scrubberBarMouseClick);
}