用jsfl在Flash中创建自定义的刻度尺

作者:xiangming   类型:转载   来源:向明空间

  在Flash中画一个刻度尺。原理比较简单,如果用创作工具(画刻度线、文本...)的话,似乎又有点繁琐;
如果用jsfl的话,就比较省事了,因为它要解决的只是画一些刻度线和创建一些文本。
这里我写了一个命令序列,使用起来非常简单,如图:
title
下载download

代码如下:

 

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!
   责任编辑:uufeng    时间:2006年7月28日
  • 最近更新