************************************************************************
public static var msgarray:Array = new Array(); //新建一個(gè)名為msgarray的全局?jǐn)?shù)組
public static var ari:Number=0; //新建一個(gè)全局變量,用來傳遞數(shù)組指針
var ri:Number=0; //新建一個(gè)變量,用來記錄數(shù)組指針
************************************************************************
就添加在原來的
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數(shù)組
ari=ri; //全局變量指針等于數(shù)組指針
ri++; //數(shù)組指針加一
**************************************************
上面添加的語句主要實(shí)現(xiàn)了將讀取到的測量值記錄在數(shù)組中,之所以這樣做是因?yàn)榇龝?huì)在動(dòng)畫界面讀取數(shù)據(jù)時(shí),由于幀數(shù)的關(guān)系,并不是每個(gè)測量值都會(huì)在每一幀運(yùn)行時(shí)被讀到,所以有可能會(huì)出現(xiàn)數(shù)據(jù)遺漏,當(dāng)然如果動(dòng)畫幀數(shù)比傳感器采集數(shù)據(jù)要快可能不會(huì)有這個(gè)問題,但如果動(dòng)畫幀數(shù)比較低時(shí),這個(gè)問題就比較嚴(yán)重了。所以這里用一個(gè)數(shù)組來記錄所測量到的數(shù)據(jù),在每一幀讀取時(shí)就不會(huì)出現(xiàn)漏數(shù)據(jù)的情況了。
************************************************************************************
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;
*******************************************************
然后再界面上畫兩條線表示橫縱坐標(biāo)軸,具體位置:x:100 y:100 寬:500 高:450
然后回到主場景,打開庫,將庫中的huitu拖入主場景,制作完畢,運(yùn)行后界面如圖: