# Custom Class Creation

**URL:** <https://forum.kirupa.com/t/custom-class-creation/293078>\
**Category:** flash\
**Created:** [July 22, 2009, 11:48pm UTC](https://forum.kirupa.com/t/custom-class-creation/293078 "2009-07-22T23:48:16Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![haroldc](https://avatars.discourse-cdn.com/v4/letter/h/2bfe46/32.png) [@haroldc](https://forum.kirupa.com/u/haroldc)\
**Post date:** [July 22, 2009, 11:48pm UTC](https://forum.kirupa.com/t/custom-class-creation/293078/1 "2009-07-22T23:48:16Z")

</div>

Hi guys,

I’m making a custom class from a player I created from scratch.

After multi verification of the instances , and after linking correctly my movie clip player, I still get the 1120 error.

It doesn’t get the “Player\_mc.” and all the mc inside it.

1120: Accès à la propriété non définie Player\_mc.

Can someone help me on this one please ?

All of this is my first flash project.

Thanks.

```auto

package{
    
    import flash.display.MovieClip;
    import flash.events.Event;
    import flash.events.MouseEvent;
    import flash.events.NetStatusEvent;
    import flash.media.Video;
    import flash.net.NetConnection;
    import flash.net.NetStream;
    import gs.TweenLite;
    import fl.motion.easing.*;
    import flash.utils.Timer;
    import flash.events.TimerEvent;

    public class MonPlayerVideo extends MovieClip {        
        
        
            public const BUFFER_TIME:Number = 8;
            public const DEFAULT_VOLUME:Number = 0.6;
            public const DISPLAY_TIMER_UPDATE_DELAY:int = 10;
            public const SMOOTHING:Boolean = true;
            
            
            private var nc : NetConnection;
            private var ns : NetStream;
            private var video : Video;
            private var displayHours : Boolean = true;    
            private var isLoop : Boolean = false;
            private var startBufferLength : Number = 5;
            private var xpandedBufferLength : Number = 15;
            private var playAtStart : Boolean = true;
            private var bolVolumeScrub : Boolean = false;
            private var bolProgressScrub : Boolean = false;
            private var tmrDisplay : Timer;
            private var objInfo : Object;
            private var intLastVolume : Number = DEFAULT_VOLUME;

    public function PlayerVideo(){
        
            //video= new Video();
            //video_mc.addChild(video);
            nc = new NetConnection(); 
            nc.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
            nc.connect(null);
            initControls();    
    }
    
    public function setVideo(file:String):void{
            
                ns =new NetStream(nc);
                ns.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
                //ns.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler); 
                ns.bufferTime= BUFFER_TIME;
                ns.client = this;
                ns.play(file);
                if(playAtStart==false){
                    ns.pause();
                        Player_mc.ControlBar_mc.playpause_mc.gotoAndStop(1);
                    }else{                
                        Player_mc.ControlBar_mc.playpause_mc.gotoAndStop(2);
                }            
                

                Player_mc.VidDisplay.attachNetStream(ns);
                Player_mc.VidDisplay.smoothing = SMOOTHING;
                
                tmrDisplay = new Timer(DISPLAY_TIMER_UPDATE_DELAY);
                tmrDisplay.addEventListener(TimerEvent.TIMER, updateDisplay);
    }
    
    private function initControls():void{
        
        
            Player_mc.ControlBar_mc.playpause_mc.useHandCursor = true;
            Player_mc.ControlBar_mc.playpause_mc.buttonMode = true;
            Player_mc.ControlBar_mc.goFullScreen_mc.buttonMode = true;
            Player_mc.ControlBar_mc.goFullScreen_mc.useHandCursor = true;
            Player_mc.ControlBar_mc.godebut_mc.buttonMode = true;
            Player_mc.ControlBar_mc.godebut_mc.useHandCursor = true;
            Player_mc.ControlBar_mc.ProgressBar_mc.ProgressScrubber_mc.buttonMode = true;
            Player_mc.ControlBar_mc.ProgressBar_mc.ProgressScrubber_mc.useHandCursor = true;
            Player_mc.ControlBar_mc.SoundControlBar_mc.SoundControlBarScrubber_mc.buttonMode = true;
            Player_mc.ControlBar_mc.SoundControlBar_mc.SoundControlBarScrubber_mc.useHandCursor = true;

    
            Player_mc.ControlBar_mc.playpause_mc.addEventListener(MouseEvent.CLICK, PlayPause);
            Player_mc.ControlBar_mc.goFullScreen_mc.addEventListener(MouseEvent.CLICK, ClickFullScreen);
            Player_mc.ControlBar_mc.goFullScreen_mc.addEventListener(MouseEvent.MOUSE_OVER, fullscreen);
            Player_mc.ControlBar_mc.goFullScreen_mc.addEventListener(MouseEvent.MOUSE_OUT, fullscreenOut);
            Player_mc.ControlBar_mc.godebut_mc.addEventListener(MouseEvent.CLICK, goDebut);
            Player_mc.ControlBar_mc.addEventListener(MouseEvent.MOUSE_OVER, manageMouseOver);
            Player_mc.ControlBar_mc.addEventListener(MouseEvent.MOUSE_OUT, manageMouseOut);
    
    
            Player_mc.ControlBar_mc.btnVolumeBar.addEventListener(MouseEvent.MOUSE_DOWN, volumeScrubberClicked);
            Player_mc.ControlBar_mc.SoundControlBar_mc.SoundControlBarScrubber_mc.addEventListener(MouseEvent.MOUSE_DOWN, volumeScrubberClicked);
            Player_mc.ControlBar_mc.btnProgressBar.addEventListener(MouseEvent.MOUSE_DOWN, progressScrubberClicked);
            Player_mc.ControlBar_mc.ProgressBar_mc.ProgressScrubber_mc.addEventListener(MouseEvent.MOUSE_DOWN, progressScrubberClicked);

            Player_mc.ControlBar_mc.SoundControlBar_mc.SoundControlBarScrubber_mc.x = (93 * DEFAULT_VOLUME) + 372;
            Player_mc.ControlBar_mc.SoundControlBar_mc.SoundControlBarFill_mc.width = Player_mc.ControlBar_mc.SoundControlBar_mc.SoundControlBarScrubber_mc.x - 467 + 93;
            setVolume(DEFAULT_VOLUME);
            
    }
    
    
    private function onMetaData(info:Object):void {
    
        objInfo = info;
        tmrDisplay.start();
    }

    private function netStatusHandler(event:NetStatusEvent):void {    
            switch (event.info.code) {                
                case "NetStream.Buffer.Full":
                    ns.bufferTime = xpandedBufferLength;                    
                    break;

                case "NetStream.Buffer.Empty":
                    ns.bufferTime = startBufferLength;                    
                    break;
                
                
            }
                
    }
    
    
    private function videoTimeConvert(myTime):String {
    
    
            var tempNum = myTime;
            var minutes = Math.floor(tempNum / 60);            
            if (displayHours) {
                var hours = Math.floor(minutes / 60);
            }
            var seconds = Math.round(tempNum - (minutes * 60));            
            if (seconds < 10) {
                seconds = "0" + seconds;
            }
            if (minutes < 10) {
                minutes = "0" + minutes;
            }            
            if (displayHours) {
                if (hours < 10){
                    hours = "0" + hours;
                }
            }            
            var currentTimeConverted = minutes + ":" + seconds;            
            return currentTimeConverted;
    }
    
    
    
    private function PlayPause(e:MouseEvent=null){        
            
            
            if(Player_mc.ControlBar_mc.playpause_mc.currentFrame == 1){
                playVideo();        
            }else{
                pauseVideo();
            }
            
    }
            

    private function pauseVideo():void{            
            
            Player_mc.ControlBar_mc.playpause_mc.gotoAndStop(1);
            ns.pause();
            
    }
            

    private function playVideo():void{            
            
            Player_mc.ControlBar_mc.playpause_mc.gotoAndStop(2);
            ns.resume();
            
    }
        

    private function goDebut(event:MouseEvent):void {
    
            ns.seek(0);
    
    }

    private function manageMouseOver(e:MouseEvent):void{
    
            TweenLite.to(Player_mc.ControlBar_mc, 2, {alpha:1});
    }
 

    private function manageMouseOut(e:MouseEvent):void{
              
            TweenLite.to(Player_mc.ControlBar_mc, 2, {alpha:0});
  
    }
    
    private function fullscreen(e:MouseEvent):void {
    
    
    Player_mc.ControlBar_mc.goFullScreen_mc.gotoAndStop(2);

    }

    private function fullscreenOut(e:MouseEvent):void {
    
    
    Player_mc.ControlBar_mc.goFullScreen_mc.gotoAndStop(1);

    }

    private function ClickFullScreen(event:MouseEvent):void {
    
        if (stage.displayState == StageDisplayState.NORMAL) {
            stage.displayState=StageDisplayState.FULL_SCREEN;
        } else {
            stage.displayState=StageDisplayState.NORMAL;
        }
    
    }
    
    
    private function updateDisplay(e:TimerEvent):void {

    
        if(bolProgressScrub)
            ns.seek(Math.round(Player_mc.ControlBar_mc.ProgressBar_mc.ProgressScrubber_mc.x * objInfo.duration / 230))
        else
            Player_mc.ControlBar_mc.ProgressBar_mc.ProgressScrubber_mc.x = ns.time * 230 / objInfo.duration; 
        
        
        var nowSecs:Number = Math.floor(ns.time);
        Player_mc.ControlBar_mc.timer_txt.text = videoTimeConvert(nowSecs);
        
    
        Player_mc.ControlBar_mc.ProgressBar_mc.ProgressBarFill_mc.width = Player_mc.ControlBar_mc.ProgressBar_mc.ProgressScrubber_mc.x + 5;
        Player_mc.ControlBar_mc.ProgressBar_mc.ProgressBarDL_mc.width = ns.bytesLoaded * 229 / ns.bytesTotal;
        
    
        if(bolVolumeScrub) {
            setVolume((Player_mc.ControlBar_mc.SoundControlBar_mc.SoundControlBarScrubber_mc.x - 0) / 93);
            Player_mc.ControlBar_mc.SoundControlBar_mc.SoundControlBarFill_mc.width = Player_mc.ControlBar_mc.SoundControlBar_mc.SoundControlBarScrubber_mc.x - 93 + 93;
        }
        
    
    }

    private function setVolume(intVolume:Number = 0):void {
    
        var sndTransform = new SoundTransform(intVolume);
        ns.soundTransform = sndTransform;
        
    }

    private function volumeScrubberClicked(e:MouseEvent):void {
    
        bolVolumeScrub = true;
        Player_mc.ControlBar_mc.SoundControlBar_mc.SoundControlBarScrubber_mc.startDrag(true, new Rectangle(0, 0, 93, 0)); //
    }

    private function progressScrubberClicked(e:MouseEvent):void {

        bolProgressScrub = true;
        Player_mc.ControlBar_mc.ProgressBar_mc.ProgressScrubber_mc.startDrag(true, new Rectangle(0, 0, 222, 0));
    }

    private function mouseReleased(e:MouseEvent):void {
    
        bolVolumeScrub = false;
        bolProgressScrub = false;
    
    
        Player_mc.ControlBar_mc.ProgressBar_mc.ProgressScrubber_mc.stopDrag();
        Player_mc.ControlBar_mc.SoundControlBar_mc.SoundControlBarScrubber_mc.stopDrag();
        
        
        Player_mc.ControlBar_mc.ProgressBar_mc.ProgressBarFill_mc.width = Player_mc.ControlBar_mc.ProgressBar_mc.ProgressScrubber_mc.x + 5;
        Player_mc.ControlBar_mc.SoundControlBar_mc.SoundControlBarFill_mc.width = Player_mc.ControlBar_mc.SoundControlBar_mc.SoundControlBarScrubber_mc.x - 467 + 93;
        
        
        if((Player_mc.ControlBar_mc.SoundControlBar_mc.SoundControlBarScrubber_mc.x - 372) / 93 > 0)
            intLastVolume = (Player_mc.ControlBar_mc.SoundControlBar_mc.SoundControlBarScrubber_mc.x - 372) / 93;
        
        
    }
  }
}

  

```

And here’s how I put it in my fla :

```auto

import MonPlayerVideo ;

var myPlayer:MonPlayerVideo = new MonPlayerVideo;

myPlayer.setVideo("reel.flv");
this.addChild(myPlayer);

```
