AIR 3 Native Extension Example – PenTablet

This native extension allows you to read pressure sensitivity data from a pen tablet. It’s only been tested on Windows 7 with a Wacom Intuos 4. I’ll go through the build steps in the same format as last time.

Requirements:

Checkout the project on GitHub for all the code.

  • Source files
  • Project files for Visual C++ and Flash Builder
  • Batch files so you don’t have to use the command line
  • All intermediate files

The project contains some placeholder files that I cannot include in the repository because they are copyrighted by Adobe. After checking out the project, you need to:

  1. Replace FREPenTablet/FREPenTablet/FlashRuntimeExtensions.h with AIR_SDK/include/FlashRuntimeExtensions.h
  2. Replace FREPenTablet/FREPenTablet/FlashRuntimeExtensions.lib with AIR_SDK/lib/win/FlashRuntimeExtensions.lib

Now that everything is setup, you can try compiling everything yourself.

  1. Open FREPenTablet/FREPenTablet.sln in Visual C++ 2010
  2. Build the .dll (F7)
  3. Import PenTabletLib into Flash Builder
  4. Build the .swc (Ctrl + B)
  5. Open the .swc with a .zip editor, and extract library.swf to the same folder as the .swc
  6. Build the .ane (run PenTabletLib/bin/package.bat)
  7. Import PenTabletDemo into Flash Builder
  8. Build the .swf (Ctrl + B)
  9. Build the .exe (run PenTabletLib/bin-debug/package.bat)

If everything was successful, you can draw on the stage with pressure sensitivity!

About these ads
  1. #1 by Brad on October 2, 2011 - 4:58 am

    Really awesome work! Thanks for sharing.

    side note:
    Not sure if you have done any native extensions for Android, but I have been struggling to pass BitmapData from actionScript to Java, do you have any idea how to do it?

    There is a FREBitmapData class included in the FlashRuntimeExtension jar, but I havent been able to use it successfully.

  2. #4 by Ky Lân on January 6, 2012 - 3:30 am

    Hi ! And thanks a lot for sharing your code !

    I’m an AS3 dev, not a C dev. Do you think there is a chance to port your code for MacOS ? Or it’s totally different ?

    Thanks again !

    • #5 by Sean Fujiwara on January 6, 2012 - 3:35 pm

      Wacom has an SDK for Mac OS X, so it should be very similar. But, I’ve never done any Mac development, so I’m not sure what’s involved. It would be much better if somebody who uses a Mac did it, because it’s hard for me to test. I won’t say “no chance”, but not soon.

  3. #6 by parizer on March 11, 2012 - 5:22 am

    Is it possible to track mouse and mouse clicks on Windows with AIR app in system tray (+native extension)?

  4. #7 by parizer on March 11, 2012 - 5:44 am

  5. #9 by Aviv Heilweil on July 17, 2012 - 2:37 am

    Does it support Galaxy S Pen? Is there a native extension that connects to the S Pen SDK?

    • #10 by Sean Fujiwara on July 17, 2012 - 4:30 pm

      You’re asking about a phone, right? No, I don’t know of any extensions for that. You can always create your own, but it would be much different than this example.

  6. #11 by Park Cheol Wan on July 19, 2012 - 11:10 am

    how to know max tablet’s Pressure?(512,1024,2048)
    i dont find it.. help :P ..

  7. #13 by Juho on October 23, 2012 - 6:53 am

    I’m interested in this. I managed to compile in the Visual Express (F7), but I’m stuck in Flash Builder. There’s an error on line “import flash.external.ExtensionContext;”

    1046: Type was not found or was not a compile-time constant: ExtensionContext.

    It cannot find the Class ExtensionContext. I tried to import flash classes to the project but no luck. I cannot compile.

    Any ideas?

    • #14 by Juho on October 23, 2012 - 11:53 pm

      Problem solved by using Flex SDK 4.6.

  8. #15 by Bruce Lane on November 5, 2012 - 2:24 pm

    Yes! It works fine for me launching the .exe file. I guess it can’t run from Flash Builder, you have to use package.bat to generate the .exe to debug?

  9. #20 by nthere9 on December 28, 2012 - 12:21 am

    Thanks for share, I have problem with importing .ane files into flash builder.
    1- Add .ane file from Properties/Flex Build Path/Native Extensions
    2- Checked in Build packaging/Native Extensions my .ane file
    3- I saw ExtensionID in application descriptor file
    4- also added .swc file as external
    When I try to use my app in another platform(Premiere Pro editor software) couldn’t found class that I created in lib project.
    Do you suggest me anything ?

  1. Pen tablet native extension example « Flash Platform Doc Team
  2. Chris Black | blackcj.com: Detect Pen Tablet Pressure with the AIR 3 Native Extension

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

%d bloggers like this: