如今非常多软件都支持了编辑界面的文本拖拽和点击编辑来直接改动数值, 这样便于操作, 并且体验性也好, 抛砖引玉吧
于是就用好久没编写的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这个平台