# Is this the correct way to code?

**URL:** <https://forum.kirupa.com/t/is-this-the-correct-way-to-code/293404>\
**Category:** flash\
**Created:** [July 28, 2009, 2:48pm UTC](https://forum.kirupa.com/t/is-this-the-correct-way-to-code/293404 "2009-07-28T14:48:20Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![PumpkinSkull](https://avatars.discourse-cdn.com/v4/letter/p/9de0a6/32.png) [@PumpkinSkull](https://forum.kirupa.com/u/PumpkinSkull)\
**Post date:** [July 28, 2009, 2:48pm UTC](https://forum.kirupa.com/t/is-this-the-correct-way-to-code/293404/1 "2009-07-28T14:48:20Z")

</div>

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.

```auto

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);
}

```
