Prototyping Lab: Recipe 5.3

by kotobuki
♥0 | Line 35 | Modified 2010-04-14 22:31:06 | MIT License
play

ActionScript3 source code

/**
 * Copyright kotobuki ( http://wonderfl.net/user/kotobuki )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/zfNK
 */

package {
  import flash.display.Sprite;
  import flash.text.TextField;

  import funnel.*;
  import funnel.ui.*;

  public class MeasurePosition extends Sprite {
    // Arduino
    private var arduino:Arduino;

    // SoftPot
    private var softpot:SoftPot;

    // SoftPotの状態を表示するテキストフィールド
    private var textField:TextField;

    public function MeasurePosition() {
      // LEDに接続したピンのモードを出力にセット
      var config:Configuration = Arduino.FIRMATA;
      config.setDigitalPinMode(13, OUT);
      arduino = new Arduino(config);

      // SoftPotのインスタンスを設定し、レンジやイベントリスナをセット
      softpot = new SoftPot(arduino.analogPin(5));
      softpot.setRange(0.1, 1.0);
      softpot.addEventListener(SoftPotEvent.PRESS, onPress);
      softpot.addEventListener(SoftPotEvent.RELEASE, 
                               onRelease);
      softpot.addEventListener(SoftPotEvent.DRAG, onDrag);

      // SoftPotの状態を表示するテキストフィールドを追加
      textField = new TextField();
      addChild(textField);
    }

    // SoftPotに指が触れたら以下を実行
    private function onPress(e:SoftPotEvent):void {
      textField.text = "position: " + (softpot.value * 50) 
                       + " mm";
    }

    // SoftPotから指が離れたら以下を実行
    private function onRelease(e:SoftPotEvent):void {
      textField.text = "off";
    }

    // SoftPot上でドラッグしたら以下を実行
    private function onDrag(e:SoftPotEvent):void {
      textField.text = "position: " + (softpot.value * 50) 
                       + " mm";
    }
  }
}