helloeeg_part_2.txt · Last modified: 2014/05/06 19:55 (external edit)

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

helloeeg_part_2 [2010/02/04 15:19]
helloeeg_part_2 [2014/05/06 19:55]
Line 1: Line 1:
-====== HelloEEG! Part 2 ====== 
-====== Features ====== 
-  * Build upon [[helloeeg_adobe_flash_tutorial|HelloEEG!]] Tutorial 1 
-  * Animate an object using ActionScript 
-  * Using other data supplied from the MindSet 
  
-====== Required Materials ​ ====== 
-This tutorial requires the following materials: 
-  * [[http://​neurosky.com/​|MindSet]] 
-  * [[thinkgear_connector_tgc|ThinkGear Connector]] 
-  * Adobe Flash CS4 Professional 
-  * [[http://​code.google.com/​p/​as3corelib/​|as3corelib]] 
-====== Recommended Reading ====== 
-  * {{:​app_notes:​thinkgear_connector_user_s_guide_new.pdf|ThinkGear Connector User's Guide}} 
-  * {{:​app_notes:​thinkgear_socket_protocol.pdf|ThinkGear Socket Protocol}} 
-  * as3corelib API Documentation (JSON class only) 
- 
-====== Prerequisite Steps ====== 
-  * Complete HelloEEG Tutorial 1 
-====== Animation with eSense ====== 
- 
-Now that you have connected to the ThinkGear Connector and you are now reading data from the MindSet, lets expand the Hello EEG! application further. Going back to "​DisplayWindow.as",​ add the following code under the other imports: 
-<​code>​ 
-import fl.transitions.*; ​                   //for animation 
-import fl.transitions.easing.*; ​            //for animation 
-</​code>​ 
-Next, create the ball that will be controlled by eSense by adding a Sprite to the ''​DisplayWindow''​ class. 
-<​code>​ 
-//Private Properties 
-private var thinkGearSocket : Socket; ​       
-private var circle:​Sprite; ​                 //add sprite 
-</​code>​ 
-In the ''​DisplayWindow''​ initialization function, create and add ''​circle''​. 
-<​code>​ 
-public function DisplayWindow() { 
-        ​ 
-  circle = new Sprite(); 
-  circle.graphics.beginFill(0xFF0000);​ 
-  circle.graphics.drawCircle(275,​ 0, 40); 
-  circle.graphics.endFill();​ 
-  addChild(circle);​ 
-</​code>​ 
-Your code should now look like this. 
-<​code>​ 
-package ​ { 
-  import flash.display.*;​ 
-  import flash.events.*; ​                     //for event handling 
-  import flash.net.Socket; ​                   //sockets 
-  import com.adobe.serialization.json.* ​  ; ​  //​as3corelib JSON support 
-  import fl.transitions.*; ​                   //for animation 
-  import fl.transitions.easing.*; ​            //for animation 
-  
-  public class DisplayWindow extends Sprite { 
-  
-    // Constants: 
-    // Public Properties: 
-    public var attention:​uint;​ 
-    public var meditation:​uint;​ 
-    public var poorSignal:​uint;​ 
-  
-    // Private Properties: 
-    private var thinkGearSocket : Socket; 
-    private var circle:​Sprite;​ 
- 
-    // Initialization:​ 
-    public function DisplayWindow() { 
-   ​ 
-      circle = new Sprite(); 
-      circle.graphics.beginFill(0xFF0000);​ 
-      circle.graphics.drawCircle(275,​ 0, 40); 
-      circle.graphics.endFill();​ 
-      addChild(circle);​ 
-   ​ 
-      thinkGearSocket = new Socket();  
-      thinkGearSocket.addEventListener(ProgressEvent.SOCKET_DATA,​ dataHandler);​ 
-      thinkGearSocket.connect("​127.0.0.1",​ 13854); 
-</​code>​ 
-Now in the ''​dataHandler()''​ function, add some animation code. Create a ''​Tween''​ object after receiving a ''​poorSignal''​ vaule. 
-<​code>​ 
-      poorSignal = data["​poorSignalLevel"​];​ 
-      var yTween:​Tween; ​                    //​adding Tween object 
-      if(poorSignal == 0) {  
-</​code>​ 
-After receiving eSense data, the ball can now be updated by using a tween animation. Using tween allows Flash to do all the animation work for you. 
-<​code>​ 
-    if(data["​poorSignalLevel"​] != null) { 
-      poorSignal = data["​poorSignalLevel"​];​ 
-      var yTween:​Tween;​ 
-      if(poorSignal == 0) {       ​ 
-        attention = data["​eSense"​]["​attention"​];​ 
-        meditation = data["​eSense"​]["​meditation"​];​ 
-   ​ 
-        var newPos:int = 350 - (attention * 3.5);        //calculate new position of ball 
-        yTween = new Tween(circle,​ "​y",​ Elastic.easeOut,​ circle.y, newPos, 0.95, true); ​ //move ball 
-      } 
-      else { 
-        if(poorSignal == 200) { 
-          attention = 0; 
-          meditation = 0; 
-          yTween = new Tween(circle,​ "​y",​ Strong.easeOut,​ circle.y, 350, 0.75, true); //move ball back 
-        } 
-      } 
-    }        
-</​code>​ 
-Now you can test your application. If everything is correct, you should see something like this.\\ ​ 
-{{:​app_notes:​helloeeg1:​bouncyball.png?​400|}} 

About NeuroSky

NeuroSky technologies enable the most insightful and easy-to-understand health and wellness biometrics for mobile solutions, wearable devices, and service providers. The company’s proprietary, market-leading biosensor technologies provide a foundation for analyzing biometric data in a way that’s never before been practical. NeuroSky-enabled solutions deliver unique insights into body and mind health and wellness that can motivate people to make better lifestyle choices.