flash on 2014-10-7

by mutantleg
♥0 | Line 135 | Modified 2014-10-07 21:54:44 | MIT License
play

ActionScript3 source code

/**
 * Copyright mutantleg ( http://wonderfl.net/user/mutantleg )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/rIDV
 */

package {
    import flash.display.Sprite;
    public class FlashTest extends Sprite {
        public function FlashTest() {
            
          var a:xMain;
          a = new xMain();
          addChild(a);  
            
        }//ctor
        
        
        
    }//classend
}
import flash.display.BitmapData;
import flash.events.MouseEvent;
import flash.display.Sprite;

internal class xPanel extends Sprite
{
  
  public var panel:xPanel = null; //parent panel
  public function gotClick(on:xBtn):void
  {
      if (panel != null) { panel.onClick(on); }
      onClick(on);
  }//gotclick 
  
  public function onClick(on:xBtn):void
  {
  }//onclick 
  
  public var over:xBtn = null;
  public function setOver(on:xBtn):void { over = on; onOver(on); }
   
  public function onOver(on:xBtn):void
  {      
  }//onover
   
  public function addBtn(a:xBtn):void
  {
        addChild(a);
        a.panel = this;
   }//addbtn
 
  public function setGfx(w:int, h:int, c:uint=0x808080):void
    {
      graphics.clear();
      graphics.lineStyle(2,0);
      graphics.beginFill(c, 1);
      graphics.drawRect(0,0,w,h);
      graphics.endFill();
    }//setgfx
    
}//panel

internal class xMain extends xPanel
{
    public function xMain()
    {
       var a:xBtn;
        a = new xBtn();
         a.id = 2;   a.x = 64;   a.y = 65;     a.tower = 1;
        addBtn(a);
        
      var p:xPanel;
        p = new xPanel();
         p.panel = this;  p.setGfx(256,128);
         p.x = 16;   p.y = 256; p.visible = false;
        addChild(p); 
        p1 = p;
        
        a = new xBtn();
         a.id = 16; a.x = 8; a.y= 8;
        p.addBtn(a);
       
        a = new xBtn();
         a.id = 17; a.x = 8+64; a.y= 8;
        p.addBtn(a);
   
       p = new xPanel();
         p.panel = this; p.setGfx(256,128,0x800000);   
         p.x = 16; p.y = 256; p.visible = false;  
       addChild(p);
       p2 = p;
       
        a = new xBtn();
         a.id = 18; a.x = 8; a.y= 8;
        p.addBtn(a);
        
        //setPanel(p1);
    }//ctor
    
    public var p1:xPanel;
    public var p2:xPanel;
    
    override public function onOver(on:xBtn):void
    {
        
    }//onover
    
    public var curPanel:xPanel;
    public function setPanel(p:xPanel):void
    {
       if (p == curPanel) { return; }
       if (curPanel != null)  { curPanel.visible = false; curPanel = null;}      
       if (p == null) {  return; }
       curPanel = p; curPanel.visible = true;
    }//setpanel
    
    public var sel:xBtn;
    override public function onClick(on:xBtn):void
    {
        
        //on.x += 16;
        if (on.tower > 0)
        {
           graphics.clear();
            if (sel == on) { sel = null; setPanel(null); return;}
            sel = on;
           graphics.lineStyle(2,0);
           graphics.drawCircle(on.x+16,on.y+16, 64);   
           setPanel(p1);
          return;
        }//endif
        
        if (on.id == 16) { sel.x += 32; return; }
        if (on.id == 17) { setPanel(p2); return; }
        if (on.id == 18) { setPanel(p1); return; }
    }//onlclick
 
}//xmain



internal class xBtn extends Sprite
{
    public var panel:xPanel;
    
    public var id:int = -1;
    public var tower:int = 0;
    public var spec:int = 0;
    
    public function xBtn()
    {
       this.useHandCursor = true;
       this.buttonMode = true;
       setGfx(null);
       alpha = 0.7;
       addEventListener(MouseEvent.CLICK, mclick); 
       addEventListener(MouseEvent.ROLL_OUT, rout);
       addEventListener(MouseEvent.ROLL_OVER, rover);
    }//ctor
    
    public function setGfx(dat:BitmapData):void
    {
      var w:int; var h:int;
      w = dat == null ? 32 : dat.width;
      h = dat == null ? 32 : dat.height;
      graphics.clear();
      graphics.lineStyle(2,0);
      if (dat == null) { graphics.beginFill(0x808080, 1); }
      else { graphics.beginBitmapFill(dat,null); }
      graphics.drawRect(0,0,w,h);
      graphics.endFill();
    }//setgfx
    
    public function rover(e:MouseEvent):void {panel.setOver(this); alpha = 1.0; }
    public function rout(e:MouseEvent):void { panel.setOver(null); alpha = 0.7; }
    public function mclick(e:MouseEvent):void { panel.gotClick(this); }
    
    
};//xbtn