Alert.png

Notice: This page contains information for the legacy Phidget21 Library.

Phidget21 is out of support. Bugfixes may be considered on a case by case basis.

Phidget21 does not support VINT Phidgets, or new USB Phidgets released after 2020. We maintain a selection of legacy devices for sale that are supported in Phidget21.

We recommend that new projects be developed against the Phidget22 Library.


Click on the 2phidget22.jpg button in the menu bar to go to the Phidget22 version of this page.

Alert.png

Language - Adobe Director

From Phidgets Legacy Support
Adobe Director, developed by Adobe Systems is a tool used to build interactive and multimedia applications.

Introduction

If this is your first time working with a Phidget, we suggest starting with the Getting Started page for your specific device. This can be found in the user guide for your device. That page will walk you through installing drivers and libraries for your operating system, and will then bring you back here to use Adobe Director specifically.

Adobe Director is capable of using the complete Phidget API, including events. We also provide example code in Adobe Director for the PhidgetInterfaceKit devices.

Adobe Director can be developed with Windows..

You can compare Adobe Director with our other supported languages.

Quick Downloads

Just need the Adobe Director documentation, drivers, libraries, and examples? Here they are:

Documentation

Example Code

Libraries and Drivers

Getting started with Adobe Director

If you are new to writing code for Phidgets, we recommend starting by running, then modifying existing examples. This will allow you to:

  • Make sure your libraries are properly linked
  • Go from source code to a test application as quickly as possible
  • Ensure your Phidget is hooked up properly

The only operating system we support with Adobe Director is Windows (2000/XP/Vista/7).

Windows (XP/Vista/7/8)

Description of Library Files

Adobe Director programs on Windows depend on the following:

  • phidget21.dll contains the actual Phidget library, which is used at run-time. By default, it is placed in C:\Windows\System32. The installers in the Quick Downloads section put this file into your system.
  • Phidget21COM.dll is the Component Object Model (COM) library and provides your project access to the Phidget ActiveX objects. This is part of our COM Library. If you installed the Phidget drivers, it will have automatically registered the ActiveX objects into your system. If you are manually installing this file, you must register it through command line by running: regsvr32 Phidget21COM.dll.

If you do not want to use our installer, you can download both files and manually install them where you want; refer to our Manual Installation Instructions.

Adobe Director 11.5

Use Our Examples

1. Download the examples and unpack them into a folder. These examples were written in Adobe Director 11.5.

2. The easiest way to confirm that your environment is set up properly will be to run the HelloWorld Adobe Director example. In the Adobe Director environment, open up the file named HelloWorld.dir.

3. To run the example, click on Control → Play.

Play

4. This program will detect for devices that are attached/detached on the computer. Go ahead, and attach or detach your devices! Here is an example output:

HelloWorld Output

After confirming that the HelloWorld example is working, you can proceed to run the example for your device. Currently, the only device we have example code for is the PhidgetInterfaceKit.

Once you have the Adobe Director examples running, we have a teaching section below to help you follow them.

Write Your Own Code

When you are building a project from scratch, or adding Phidget function calls to an existing project, you'll need to configure your environment to properly link the Phidget ActiveX object.

1. Create a new movie.

2. Navigate to Insert → Control → ActiveX.

Add ActiveX Control

3. Select the ActiveX control that corresponds to your device. Select OK.

Add ActiveX Control

4. A window will pop up listing the properties and methods of the ActiveX class. Select OK.

ActiveX Properties

5. The ActiveX class will be added to your cast. Create an instance of it by dragging and dropping the cast member onto the stage.

ActiveX Cast

The project now has access to the Phidget function calls and you are ready to begin coding.

The same teaching section which describes the examples also has further resources for programming your Phidget.

Follow the Examples

By following the instructions for your operating system and compiler above, you probably now have a working example and want to understand it better so you can change it to do what you want. This teaching section has resources for you to learn from the examples and write your own.

Your main reference for writing Adobe Director code will be our Adobe Director API information, with syntax for all of our functions:

  • COM API (This is the complete set of functions you have available for all Phidgets)
  • Device Specific APIs - The one for your Phidget can be found in its user guide.

To learn the details behind opening, configuring, using, and closing your Phidget, try the General Phidget Programming page. That page also describes using the Phidget in an event-driven manner and in a traditional manner, both of which are available in Adobe Director.

Example Flow

The Hello World example has this general structure so you can follow along. We also have an in-depth general introduction to writing Phidget code (like open, read data, etc), as well as the COM API for specific syntax:

// ----- Event and Other Functions -----

Create any Language-Specific Functions (exception handling)

Create General Attach, Detach, and Error Handling Functions:

On attach: Print Hello Message
On detach: Print Goodbye Message

 

In Adobe Director, you catch these event functions using their specific names as shown below in the Code Snippets section. The specific syntax for different events and which Phidgets you can catch which events for can be found in the COM API manual. Catching events by name hooks your event functions into the actual events when they occur.
In the example code, some event functions are common to all Phidgets. These are events such as OnAttach and OnDetach, etc.

Some event functions will be specific to each device, like when a tag is read on an RFID board, or when a sensor value changes on an Interface Kit.

// ----- Main Code -----

Create Manager Software Object
Hook Event Functions created above to Device
Open Device

Wait for 'Enter' key character input
Handle on-going attach and detach events
Print Hello and Goodbye messages
Exit upon input

Close Device

Delete Device

 

Creating a Phidget software object in Adobe Director is specific to the Phidget. For a Phidget Spatial, for example, this would involve creating a Spatial ActiveX object, as shown in the Write Your Own Code section above. The examples show working instances of how to do this, and how to use other API functions.

The object provides device specific methods and properties which are available from the API for your specific Phidget.

Code Snippets

Specific calls in Adobe Director will differ in syntax from those on the General Phidget Programming page, but the concepts stay the same.

It may help to have the General Phidget Programming page and this section open at the same time, because they parallel each other and you can refer to the Adobe Director syntax. However, many additional concepts are covered on the General Phidget Programming page on a high level, such as using multiple Phidgets, handling errors, and different styles of programming.

For example, if we were using a Phidget Interface Kit as our device, the general calls would look like this:

Step One: Initialize and Open

Your program can try to connect to the Phidget through a call to open. Open will continuously try to connect to a Phidget, based on the parameters given, even trying to reconnect if it gets disconnected. This means that simply calling open does not guarantee you can use the Phidget immediately. Because we then have to also attach the Phidget within software after opening, in Adobe Director the Open step and the next step - Attach - are often combined within one event trigger.

The different parameters and open calls can be used to open:

  • The first Phidget of a type it can find,
  • A Phidget based on a serial number, or even
  • A Phidget across the network.

The COM API manual lists all of the available modes that open provides. One important thing to remember is that when working with Phidgets, a local connection will reserve the device until closed. This prevents any other instances from retrieving data from the Phidget, including other programs. The one connection per device limit does not apply when exclusively using the Phidget WebService.

Step Two: Wait for Attachment (plugging in) of the Phidget

We can account for a connection by using event driven programming and tracking the AttachEvents and DetachEvents, or by calling WaitForAttachment as we show here.

WaitForAttachment will block indefinitely until a connection is made to the Phidget, or an optional timeout is exceeded. Here, the Phidget is opened and then attached when on clicking the Open button inside a mouseUp event:

on mouseUp me
    sprite(1).CallString("Open()")
    sprite(1).CallString("WaitForAttachment(3000)")
end

Step Three: Do Things with the Phidget

We recommend the use of event driven programming when working with Phidgets in Adobe Director. This allows the program to execute other tasks until the Phidget fires a new event. In Adobe Director, you can hook an event handler inside a script for the Phidget object by catching the event by name with the following code:

on OnSensorChange(Index, SensorValue) me
    member("OutputField").text = string(Index) & ": " & string(SensorValue)
end

With this method, the code inside OnSensorChange will get executed every time the InterfaceKit reports a change on one of its analog inputs. Please refer to the COM API manual for a full list of events and their usage.

Some values can be directly read and set on the Phidget, and inside polling loops used as an alternative to event driven programming. Simply use the CallString method for obtaining data such as SensorValue(Index) or OutputState(Index, OutputState) for Interface Kits. For example:

sprite(1).CallString("OutputState(0,1)")

Other events for different Phidgets can be found in the device's user guide, and in the COM API manual.

Step Four: Close and Delete

You can use CallString("Close") at any time outside of the Phidget's own event handlers to close the connection.

Multiple Phidgets

Multiple Phidgets of the same type can easily be run inside the same Adobe Director program. This requires another PhidgetInterfaceKit ActiveX object to be created and placed. The new object can then be set up, opened and used in the same process as the previous one. If the application needs to distinguish between the devices, open can be called with the serial number of a specific Phidget.

The complete set of functions you have available for all Phidgets can be found in the COM API.

Common Problems and Solutions/Workarounds

Windows users in The Netherlands

A number of users in the Netherlands have reported issues with running our example code. It is possible this is an issue related to the Dutch language pack used for Windows however, we do not currently really know why. As we aren't able to run a Dutch version of Windows here, it is difficult to debug. If you would like to help us work through the example code that we provide and help us figure out why, please Contact Us.