久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3795|回復: 0
打印 上一主題 下一主題
收起左側

基于Arduino和Flash的DisLab課件制作教程——5

[復制鏈接]
跳轉到指定樓層
樓主
ID:60076 發(fā)表于 2014-4-22 15:51 | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式
       第5節(jié)  測量量—時間圖像繪制    在利用傳感器做實驗時,將測量量隨時間變化的情況用圖像的方式記錄下來是很重要的一種方式。這一節(jié)我們就來將如何用Flash來繪制測量量-時間圖像。
    我們仍舊選擇上一節(jié)中的紅外測距傳感器,來繪制所測得的距離-時間圖像。所以Arduino端的程序與連接都與上節(jié)一樣,這里不再描述。下面主要介紹Flash端的類編寫和Flash動畫代碼。其實將全部代碼寫在類里面也可以實現(xiàn),但是個人覺得不是很靈活,畢竟有時候我們需要將圖像挪個位置之類的還是直接可視化操作比較簡單。
    首先我們先來改寫一下上節(jié)中的hongwaiceju.as類文件下面就是要添加的語句:
  先是三個定義語句:
************************************************************************
public static var msgarray:Array = new Array();   //新建一個名為msgarray的全局數(shù)組
public static var ari:Number=0;    //新建一個全局變量,用來傳遞數(shù)組指針
var ri:Number=0;                      //新建一個變量,用來記錄數(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ù)組指針加一

**************************************************
上面添加的語句主要實現(xiàn)了將讀取到的測量值記錄在數(shù)組中,之所以這樣做是因為待會在動畫界面讀取數(shù)據(jù)時,由于幀數(shù)的關系,并不是每個測量值都會在每一幀運行時被讀到,所以有可能會出現(xiàn)數(shù)據(jù)遺漏,當然如果動畫幀數(shù)比傳感器采集數(shù)據(jù)要快可能不會有這個問題,但如果動畫幀數(shù)比較低時,這個問題就比較嚴重了。所以這里用一個數(shù)組來記錄所測量到的數(shù)據(jù),在每一幀讀取時就不會出現(xiàn)漏數(shù)據(jù)的情況了。
  下面開始制作動畫部分,同樣新建一個actionscript3.0文件,然后類里面填寫hongwaiceju。接下去在新建一個影片剪輯,取名為huitu。然后再huitu影片剪輯的動作代碼內添加如下語句:
************************************************************************************
import flash.display.Shape;
var ai:Number=0;
var ii:Number=0;
var msgnum:Number=0;
addEventListener(Event.ENTER_FRAME,onEnterFrame);
var fttuxiang:Shape = new Shape();  //畫圖線fttuxiang
fttuxiang.graphics.lineStyle(2, 0x990000, .75);
fttuxiang.graphics.moveTo(100, 450);
addChild(fttuxiang);
var ftmask:Shape = new Shape();    //fttuxiang的遮罩層
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;
function onEnterFrame(event:Event):void{        //每次運行幀時運行下列語句
while (ai<=hongwaiceju.ari)//如果ai值小于hongwaiceju中的ari,一直執(zhí)行下列語句
                                     //這樣可以讀取每兩幀間的所有數(shù)據(jù)。
  {     msgnum=Number(hongwaiceju.msgarray[ai]);
     fttuxiang.graphics.lineTo(100+ai*5, 550-msgnum*0.5);//圖線繪制
           ai++;
if(ai>80)//如果圖線超過了右邊界,則開始向左平移圖像
fttuxiang.x=(80-ai)*5;   
  }
  }

*******************************************************
然后再界面上畫兩條線表示橫縱坐標軸,具體位置:x:100     y:100    寬:500  高:450
然后回到主場景,打開庫,將庫中的huitu拖入主場景,制作完畢,運行后界面如圖:

僅僅一個簡單的功能演示,你自己可以在坐標軸上加入坐標,或者設定一些按鈕來控制圖像的大小等等,發(fā)揮自己的想象力吧。

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美一级在线视频 | 国产精品欧美精品 | 黄色国产在线观看 | 久草资源在线观看 | 毛片视频免费 | 国产午夜精品一区二区三区 | 欧美日韩在线一区 | 国产一级特黄 | 亚洲精品自拍视频 | 亚洲国产精品视频 | 欧美网站在线观看 | 亚洲一区中文 | 在线中文字幕视频 | 中文字幕在线观看日韩 | 国产日韩欧美精品 | av网站在线免费观看 | 国产一级一片免费播放放a 男男成人高潮片免费网站 精品视频在线观看 | 久操福利 | 日韩午夜在线观看 | 免费观看av网站 | 免费网站观看www在线观看 | 久久久黄色片 | 欧美在线网站 | 日韩城人免费 | a级片在线免费观看 | 91av免费 | 日韩黄色小视频 | 国产精品乱| 老女人丨91丨九色 | 麻豆一区二区三区 | 国产美女av | 国产一区在线观看视频 | 国产午夜av | av手机在线免费观看 | 国产性hd | 久久亚洲欧美 | 欧美在线免费观看 | 一区二区网站 | 亚洲精品乱码久久久久 | 久久久免费看 | 亚洲视频一区二区 |