flash on 2014-10-7
♥0 |
Line 135 |
Modified 2014-10-07 21:54:44 |
MIT License
archived:2017-03-30 11:53:43
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