📄 samplebutton.as
字号:
package org.kingda.book.namespaces
{
import flash.display.Sprite;
import flash.events.KeyboardEvent;
public class SampleButton extends Sprite
{
private var btn1:StateButton;
private var btn2:StateButton;
public function SampleButton() {
btn1 = new StateButton("Press Me.");
btn2 = new StateButton("Move on");
addChild(btn1);
addChild(btn2);
btn2.x = 100;
this.stage.addEventListener(KeyboardEvent.KEY_DOWN, redraw);
}
function redraw(evt:KeyboardEvent):void {
trace (evt.keyCode);
btn1.draw();
btn2.draw();
}
}
}
import flash.display.Sprite;
import flash.text.TextField;
import flash.events.Event;
import flash.events.MouseEvent;
class StateButton extends Sprite{
private namespace out;
private namespace over;
private namespace down;
private var label:TextField;
private var labelTxt:String;
private var ns:Namespace;
out var bgColor:Number = 0xFF0000;
over var bgColor:Number = 0xFFFF00;
down var bgColor:Number = 0xFFFFFF;
public function StateButton(str:String) {
buttonMode = true;
labelTxt = str;
ns = out;
draw();
addLabel();
addListeners();
}
private function addLabel():void {
label = new TextField();
label.text = labelTxt;
label.width = 50;
label.height = 20;
label.mouseEnabled = false;
addChild(label);
}
private function addListeners():void {
addEventListener(MouseEvent.MOUSE_UP, mouseOverHandler);
addEventListener(MouseEvent.MOUSE_OUT, mouseOutHandler);
addEventListener(MouseEvent.MOUSE_OVER, mouseOverHandler);
addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
}
private function mouseOutHandler(e:Event):void {
ns = out;
draw();
}
private function mouseOverHandler(e:Event):void {
ns = over;
draw();
}
private function mouseDownHandler(e:Event):void {
ns = down;
draw();
}
//把draw改成外部可访问,看看会不会同时影响所有实例的状态.答案是不会,引用ns是实例属性。
public function draw():void {
trace (labelTxt+ "::" + ns + "bgColor:" + bgColor);
//use namespace ns;根部不能使用,因为这个会被编译指令提前。所以都是undefined。namespace必须通过某种机制一开始就初始化好。
this.graphics.clear();
//this.graphics.beginFill(ns::bgColor);
this.graphics.beginFill(bgColor);
this.graphics.drawRect(0, 0, 60, 20);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -