如今非常多軟件都支持了編輯界面的文本拖拽和點擊編輯來直接改動數值, 這樣便于操作, 并且體驗性也好, 拋磚引玉吧
于是就用好久沒編寫的as3來寫了一下:
由于用的flash ide寫的沒有提示, 就臨時不做細節處理了, 假設用于project上會有點小問題, 只是不影響本效果展示
代碼:
import flash.text.TextField;
import flash.events.*var txtDragValue:TextField;
txtDragValue.selectable = false;
var isDown:Boolean = false;
var oldTxtValue:int = 0;
var posXOld:int = 0;
var isMoved:Boolean = false;function evt_down(e:Event){isDown = true;isMoved = false;oldTxtValue = int(txtDragValue.text);posXOld = mouseX;
}
function evt_move(e:Event){if(!isDown || txtDragValue.selectable)return;var tmpX:int = int(mouseX)if(posXOld!=tmpX){isMoved = true;oldTxtValue+= (tmpX-posXOld)*1;posXOld = tmpX;txtDragValue.text = oldTxtValue.toString();trace(oldTxtValue.toString());}
}
function evt_up(e:Event){isDown = false;if(!isMoved){txtDragValue.selectable = true;txtDragValue.type = "input";stage.focus=txtDragValue}
}
function evt_dea(e:Event){if(!isMoved && txtDragValue.selectable){txtDragValue.selectable = false;txtDragValue.type = "dynamic";}
}txtDragValue.addEventListener(MouseEvent.MOUSE_DOWN,evt_down);
txtDragValue.addEventListener(MouseEvent.MOUSE_MOVE,evt_move);
txtDragValue.addEventListener(MouseEvent.MOUSE_UP,evt_up);txtDragValue.addEventListener(FocusEvent.FOCUS_OUT,evt_dea);
資源地址:
鏈接: http://pan.baidu.com/s/1gd3wsRx password: 668g
回想使用這么多種語言和引擎, 感覺flash還有發展的空間, 僅僅是adobe對它力不從心, 假設as4有的話, 希望來個c++版本號(猜跨平臺會非常費勁)的內核, 速度會上來. 感覺flash還是太散了, 由于較早開發的軟件, 用途也過于廣泛, 導致它什么都能做, 什么也做不好, 什么都要自己去寫或者去找, 只是還好, 當中有非常多大牛的引擎比方tween-lite輕量化的運動模塊和box2d-as3版, 都能非常高效的支持as3這個平臺