************************************************************************
public static var msgarray:Array = new Array(); //新建一个名为msgarray的全局数组
public static var ari:Number=0; //新建一个全局变量,用来传递数组指针
var ri:Number=0; //新建一个变量,用来记录数组指针
************************************************************************
就添加在原来的
public static var msg:String;
这句后面。
然后在
***************************************************
while((index = buffer.indexOf(EOL_DELIMITER)) > -1)
{
msg = buffer.substring(0, index);
buffer = buffer.substring(index + 1);
*****************************************************
后面添加:
***********************************************
msgarray[ri]=Number(msg); //将msg变量赋值到msgarray数组
ari=ri; //全局变量指针等于数组指针
ri++; //数组指针加一
**************************************************
上面添加的语句主要实现了将读取到的测量值记录在数组中,之所以这样做是因为待会在动画界面读取数据时,由于帧数的关系,并不是每个测量值都会在每一帧运行时被读到,所以有可能会出现数据遗漏,当然如果动画帧数比传感器采集数据要快可能不会有这个问题,但如果动画帧数比较低时,这个问题就比较严重了。所以这里用一个数组来记录所测量到的数据,在每一帧读取时就不会出现漏数据的情况了。
************************************************************************************
import flash.display.Shape;
var ai:Number=0;
var ii:Number=0;
var msgnum:Number=0;
addEventListener(Event.ENTER_FRAME,onEnterFrame);
ftmask.graphics.lineStyle(1, 0x000000);
ftmask.graphics.beginFill(0xff0000);
ftmask.graphics.drawRect(100, 100, 600, 450);
ftmask.graphics.endFill();
this.addChild(ftmask);
fttuxiang.mask=ftmask;
if(ai>80)//如果图线超过了右边界,则开始向左平移图像
fttuxiang.x=(80-ai)*5;
*******************************************************
然后再界面上画两条线表示横纵坐标轴,具体位置:x:100 y:100 宽:500 高:450
然后回到主场景,打开库,将库中的huitu拖入主场景,制作完毕,运行后界面如图: