Well the code that your friend is suggesting is pretty straightforward and
you could port it over to AS2 if you wanted. Instead of a hashMap, why not
just use an associative array? I'm pretty sure that I've seen a hash class
ripping around from either Brandan Hall or Samuel Wan based off of an
associative array.

All in all, the code could be ported over with minimal effort... but there
would be some area's that you would need to be creative with.

Cheers,

Kevin

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of black59mga
Sent: June 6, 2006 4:09 PM
To: Flashcoders mailing list
Subject: RE: [Flashcoders] How do real developers do key handling?

I have 10 apps that will controlled with a TV remote control (no mouse).
There are only 12 keys on the remote, so the app that has focus will will
have to do very different things with a given key press, depending on
context. 

A java dev. friend suggested an approach using a hashMap, but we don't have
hashMap in AS 2.0. And I'm a bit confused by his sample code:

public class ChannelInputTest {
  public static void main(String argv[]) {

    // Create a new ChannelInput object and add a few keys to its map
    ChannelInput ci1 = new ChannelInput();
    ci1.addKey("1", new SimpleKeyHandler());
    ci1.addKey("2", new AnotherSimpleKeyHandler());

    // Now handle some keys with this puppy
    ci1.processKey("1");
    ci1.processKey("2");

    // Create a SECOND ChannelInput object, and add some different
keys/handlers
    ChannelInput ci2 = new ChannelInput();
    ci2.addKey("3", new AnotherSimpleKeyHandler());
    ci2.addKey("4", new SimpleKeyHandler());
    
    ci2.processKey("3");
    ci2.processKey("4");

    // Finally - should get an error if a ChannelInput gets unmapped key
    ci2.processKey("1");
  }
}

import java.util.HashMap;

public class ChannelInput {
  private HashMap handlerMap = null;

  ChannelInput() {
    handlerMap = new HashMap();
  }

  public void addKey(String key, KeyHandler handler) {
    handlerMap.put(key, handler);
  }

  public void processKey(String key) {
    KeyHandler handler = (KeyHandler) handlerMap.get(key);

    if (handler == null) {
      System.out.println("ERROR: null handler for key \"" + key + "\"");
    } else {
      handler.handleKey(key);
    }
  }

public class SimpleKeyHandler implements KeyHandler {
  public void handleKey(String key) {
    System.out.println("SimpleKeyHandler Key " + key + " was pressed");
    // Action for this key goes here
  }
}

interface KeyHandler {
  public void handleKey(String key);
}

<><><>
Kevin Aebig <[EMAIL PROTECTED]> wrote: Perhaps if you told us what you're
trying to accomplish, we could offer
suggestions around it, but as far as catching specific keys, I'm pretty sure
you're doing it the only way possible.

!k

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of black59mga
Sent: June 6, 2006 3:01 PM
To: flash Coders
Subject: [Flashcoders] How do real developers do key handling?

How do real actionscript developers do key handling? If you have several
(like 10) apps that are loaded into MCs in 'Main.swf'... What's a good way
to code the key handling?  Right now I'm drowning in multiple key.GetCode()
switch statements that all live in my 'Main.as'. How do smart people do
this??

Any suggestions, sample code, links to tutes etc., very greatly appreciated.

-mga 



                        
---------------------------------
Sneak preview the  all-new Yahoo.com. It's not radically different. Just
radically better. 
_______________________________________________
[email protected]
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com


_______________________________________________
[email protected]
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com

Reply via email to