ICDRI's logo

Translate this page automatically. 

Main Body

Google
 


 

 

Test your Site for Accessibility with Cynthia Says ô

 

 

Home
About Us
Donations
Accessibility
Technology
Calendar
Site Map
Register
Create
Activities
Sponsorship
Products/ Services
Books
Contact
Privacy Policy

 

 

Making Macromedia Movies talk and listen

By Steve Timmer

 

 

 

You can make Macromedia movies section 508 compliant with components commonly found on your computer.

Millions of PC users may not know it, but they can ignore the keyboard and mouse when they want to create and format e-mails and Microsoft Word documents, open and close files in Excel, or create PowerPoint presentations. They can also ignore their display screens and have the numbers and text read back to them as they enter data into an Excel spreadsheet.

Thatís because the software theyíre using, Microsoft Office XP, understands voice commands and can convey information by speaking. Office XPís ability to understand and use spoken language is based on a Microsoft technology called the Speech Application Programming Interface (SAPI) thatís also being used by a growing array of independent software developers to speech-enable their own applications. Microsoft has released SAPI version 5.1, which vastly simplifies application developersí work to enable their applications to speak and to understand the speech directed to them. SAPI 5.1 also makes it easier for "engine vendors" -- the people who create the underlying software code that translates between spoken words and text -- to offer software engines that can work with many speech-enabled applications, without having to re-write the engine code to support each one. Similarly, application vendors gain the flexibility to link their software to any compatible engine.

I am working with two custom ActiveX controls that are designed to work with Microsoft SAPI 5.1. These two active controls can be used in Macromedia Director. They work well but there are just a few things that you need to be aware of while using them. Since Director does have an IDE in which you construct your movie, there is a property palette in which you can set component property values. However, Director does not perform it's property exchange as an ActiveX container in UserMode (run) state and this requires you to set property values in your Lingo code instead.

You must also ensure in Director that your movie timeline does not loop. You may have frame loops but you don't want your movie to loop to the beginning and replay. The reason is that this causes the component to be freed at the end of your movie and reallocated at the beginning. Component processing is interrupted and terminated at the end of the movie because the component is released. Speech recognition and synthesis is therefore terminated. Use "go to me" on an exitframe event to loop within a frame to keep your movie running until its time to end your movie.

Even though you have started your movie in Director, not all events fired are in UserMode (run) state. For example, Lingo code that sets properties or invokes methods on the components is not executed in events such as startMovie, stopMovie, prepareMovie, and beginSprite because Director is still in Design state when these events fire. However, Lingo code that sets properties or invokes methods on the components in events such as mouseup, mousedown, enterFrame, and exitFrame does get executed.

Enabling your movie to listen for commands or speak requires that you ensure your movie does not loop to the beginning of its timeline. This is because the ActiveX components are allocated and initialized (instantiated) at the beginning of the movie. You sustain their existence and ability to receive event notifications if you loop in movie frames later in your timeline. Then you can exit your movie as needed or at the end of your time line or when appropriate.

You can place your ActiveX components on any sprite. You set properties or invoke methods on the components in your Lingo code by referencing the Sprite number. If you want to use the enumeration constants to pass as parameter values like other tradition programming languages, then you need to define these constant values as global.

Steve Timmer is the CIO and president and has over 15 years experience in both the electromagnet and computer industries creating commercially available products. Steve has been a programmer, Nuclear Engineer, MIS Manager, Senior Information Architect and Business Owner. Steve is legally blind and began developing software products out of necessity for him to perform his job.

Steve specializes in rapid application development using object oriented programming. Using these techniques he has been able to develop and sell products for a fraction of the cost of his competitors.

He  founded and managed four successful technology companies: TecAccess( www.tecaccess.net ), Premier Programming Solutions, Centaurian Systems and Elite PC. Over 13 years experience in software integration, database design, engineering, network management, and business systems analysis, including design, development and programming of applications and application prototypes.  He can be reached at: info@tecaccess.net 

 

 

 

Google Enter your search terms Submit search form
 
Web www.icdri.org

Copyright © 1998

 

Copyright © 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 International Center for Disability Resources on the Internet Disclaimer and Privacy Policy