在Flash中画一个刻度尺。原理比较简单,如果用创作工具(画刻度线、文本...)的话,似乎又有点繁琐;
如果用jsfl的话,就比较省事了,因为它要解决的只是画一些刻度线和创建一些文本。
这里我写了一个命令序列,使用起来非常简单,如图:
代码如下:
function drawRuler() {
var _width = Number(result.width);
var _height = Number(result.height);
var _grad = Number(result.grad);
var grad_length;
var start = -1;
dom.addNewLine({x:0,y:0},{x:_width,y:0});
dom.addNewLine({x:_width,y:0},{x:_width,y:_height});
dom.addNewLine({x:_width,y:_height},{x:0,y:_height});
dom.addNewLine({x:0,y:_height},{x:0,y:0});
for(var i=_grad*2; i<=_width; i+=_grad){
start ++;
if((start % 10) == 0 start == 0){
grad_length = _height/2.5;
dom.addNewText({left:i-5, top:grad_length, right:i+5, bottom:grad_length+10});
dom.setTextString(start/10);
dom.setElementTextAttr(’size’, 12);
dom.setElementProperty(’alignment’, ’center’);
dom.setElementTextAttr(’bold’, false);
dom.setElementTextAttr(’italic’, false);
dom.setElementTextAttr(’face’, ’Times New Roman’);
} else if((start % 5) == 0){
grad_length = _height/3;
} else {
grad_length = _height/5;
}
dom.addNewLine({x:i, y:0}, {x:i, y:grad_length});
}
dom.selectNone();
}
var dom = fl.getDocumentDOM();
var lib = dom.library;
var result = dom.XMLPanel("file:///ruler.xml");
if(result.dismiss == "accept") {
fl.outputPanel.clear();
drawRuler();
}
其中xml文件:
<dialog buttons="accept, cancel" title="刻度尺">
<vbox>
<hbox>
<label value="宽: " control="width"/>
<textbox id="width" value="450" size="5"/>
<label value="高: " control="height"/>
<textbox id="height" value="50" size="5"/>
<label value="刻度: " control="grad"/>
<textbox id="grad" value="5" size="5"/>
</hbox>
</vbox>
</dialog>
enjoy!