Arduino接收数据到Flash后如何创建delay/interval
How to create delay/interval after receiving data from Arduino to Flash
我同时在使用arduino和flash,我想在接收数据时创建一个延迟(如定时器功能)并将其显示在flash swf文件中。
我已经成功地显示了从arduino传来的数据到flash,但是,每次我按下压力传感器,由于没有interval/delay/timer功能,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);
}
不完全清楚你在问什么(数据是 "clustered")但有几件事 –
您正在为每个 Arduino
事件创建一个新的 TextField
并将它们添加为子项。您是希望显示所有过去的事件,还是只想在一个持久的 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 等,但我相信代码的要点是正确的。)
哦等等 - 我看到您在每个新数据位之前添加一行 return。那是你想要的吗?如果是这样,您可能需要设置这些附加属性:
myText.multiline = true;
myText.wordWrap = true; // if you want text to wrap
我同时在使用arduino和flash,我想在接收数据时创建一个延迟(如定时器功能)并将其显示在flash swf文件中。
我已经成功地显示了从arduino传来的数据到flash,但是,每次我按下压力传感器,由于没有interval/delay/timer功能,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);
}
不完全清楚你在问什么(数据是 "clustered")但有几件事 –
您正在为每个 Arduino
事件创建一个新的 TextField
并将它们添加为子项。您是希望显示所有过去的事件,还是只想在一个持久的 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 等,但我相信代码的要点是正确的。)
哦等等 - 我看到您在每个新数据位之前添加一行 return。那是你想要的吗?如果是这样,您可能需要设置这些附加属性:
myText.multiline = true;
myText.wordWrap = true; // if you want text to wrap