我正在研究arduino和flash,我想在接收数据时创建一个延迟(比如定时器功能)并将其显示在flash swf文件中。
我已经成功地将来自arduino的数据显示为闪存,但是,每次按下压力传感器时,由于没有间隔/延迟/定时器功能,swf中的数据显示会聚集。
我是否需要创建单独的计时器并创建新功能?如果是,我将如何将其与“onTick2”相关联?
a.addEventListener(ArduinoEvent.ANALOG_DATA, onTick2);
function onTick2(e:ArduinoEvent):void
{
var forceValue:Number;
var forceNum:Number;
forceValue = a.getAnalogData(0); //this is the code to get the data from the sensor data in arduino
forceNum = (forceValue/9.1);
myFormat = new TextFormat();
myFormat.font = "Arial";
myFormat.size = 36;
myFormat.color = 0xFFFFFF;
myText = new TextField();
myText.x = 250;
myText.y = 240;
myText.text ="\n"+forceNum.toString()+" Avg. Pressure";
myText.height = 200;
myText.width = 200;
myText.defaultTextFormat = myFormat;
addChild(myText);
}
答案 0 :(得分:0)
目前还不完全清楚你要问的是什么(数据是“聚集的”),还有一些事情 -
您正在为每个TextField
事件创建一个新的Arduino
并将其添加为子项。您是希望显示所有过去的事件,还是只想在单个持久的TextField中显示当前的Arduino数据?
如果是前者,你可能想要将它们移动一点点。现在你把它们堆叠在一起。
如果后者(我的猜测是你想要的),你应该在该函数之外创建TextField(例如在添加eventListener之前。确保给Textfield一个名称,以便你可以引用它。
myText = new TextField();
myText.name = "textDisplay"
etc.
然后在您的函数中,您只能将数据分配给先前创建的TextField容器。
textDisplay.text ="\n"+forceNum.toString()+" Avg. Pressure";
(我在Flex中使用AS3类并且忘记了Flash如何处理事物(没有typeDef,public / private等等,但我相信代码的要点是正确的。)
哦等等 - 我看到你在每个新数据位之前添加一个换行符。这是你想要的吗?如果是这样,您可能需要设置这些附加属性:
myText.multiline = true;
myText.wordWrap = true; // if you want text to wrap