topical media & game development

talk show tell print

actionscript-video-09-masks-main.ax

actionscript-video-09-masks-main.ax [swf] flex


  package {
      import flash.display.Sprite;
      import flash.net.NetConnection;
      import flash.net.NetStream;
      import flash.media.Video;
      import flash.display.MovieClip;
      import flash.events.Event;
      import FlashVideoPro.StrokeMask;
      import FlashVideoPro.BoxMask;
      import FlashVideoPro.AnimMask;
      import FlashVideoPro.VideoMC;
      import fl.controls.RadioButtonGroup;
          import fl.controls.RadioButton;
          import flash.events.MouseEvent;
          
      public class @ax-actionscript-video-09-masks-main extends Sprite {
              var anim_mc:AnimMask = new AnimMask(220,190,5);
                  var stroke_mc:StrokeMask = new StrokeMask(90, 90);;
                  var dragme_mc:BoxMask = new BoxMask(190,175);
                  var video_mc:VideoMC = new VideoMC;
                  
          public function @ax-actionscript-video-09-masks-main() {            
                          var myRadioGroup:RadioButtonGroup = new RadioButtonGroup("rbg");        
                          var stroke_btn:RadioButton = new RadioButton();
                          var anim_btn:RadioButton = new RadioButton();
                          var dragme_btn:RadioButton = new RadioButton();
                          
                          myRadioGroup.addEventListener(Event.CHANGE, changeHandler);
                          
              // Attach video to the NetStream, and add to the display list
              addChild(video_mc);
              addChild(stroke_mc);
              addChild(dragme_mc);
              addChild(anim_mc);
                          //video_mc.mask = anim_mc;
                          
                          dragme_mc.addEventListener(MouseEvent.MOUSE_DOWN, grab);
                          dragme_mc.addEventListener(MouseEvent.MOUSE_UP, letgo);
                          dragme_mc.buttonMode = true;
          }
                  
                  private function resetMasks() {
                          stroke_mc.visible = false;
                          anim_mc.visible = false;
                          dragme_mc.visible = false;
                  }
                  
                  private function strokeHandler() {
                          resetMasks();
                          stroke_mc.visible = true;
                          video_mc.mask = stroke_mc;
                  }
                  
                  private function animHandler() {
                          resetMasks();
                          anim_mc.visible = true;
                          video_mc.mask = anim_mc;
                  }
                  
                  private function dragMeHandler() {
                          resetMasks();
                          dragme_mc.visible = true;
                          video_mc.mask = dragme_mc;
                  }
          
          private function changeHandler(event:Event):void {
                      var rbg:RadioButtonGroup = event.target as RadioButtonGroup;
                      switch (rbg.selection) {
                          case stroke_btn:
                              trace("stroke");
                                          strokeHandler();
                              break;
                          case anim_btn:
                              trace("anim");
                                          animHandler();
                              break;
                          case dragme_btn:
                              trace("dragme");
                                          dragMeHandler();
                              break;
                      }
                      //trace(rbg.selectedData);
                  }
                  
                  public function grab(event:MouseEvent):void {
                          event.target.startDrag();
                  }
                  public function letgo(event:MouseEvent):void {
                          event.target.stopDrag();
                  }
  
   
          private function initButtons() {
                  stroke_btn.label = "Brushstroke Mask";
                          anim_btn.label = "Animated Mask";
                          dragme_btn.label = "Drag-me Mask";
          }
      }
  }
  


(C) Æliens 27/08/2009

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.