Catching event from canvas class

Hi,
I want to catch an event from MyCanvas class/obect to MyMidlet class/object. I have implemented keypressed method in MyCanvas. can i use it pr do i have to do something else..
Any ideas?
Cheers
Indy

hi mlk!
well, i want to catch Canvas.Fire event. sorry but i should have given you an idea of the code. well here it is:
public class MyMIDlet extends MIDlet implements CommandListener {
private Display display;
private MyCanvas canvas;
private Command exitCommand = new Command("Exit", Command.SCREEN, 1 );
public MyMIDlet(){
canvas = new MyCanvas(this);
protected void startApp(){
display.setCurrent(canvas);
canvas.addComman(exitCommand);
canvas.setCommandListener(this);
public void commandAction( Command c, Displayable d ){      
     if( c == exitCommand ){
     exit();
public class MyCanvas extends Canvas{
protected void keyPressed(int keyCode) {
     if(keyCode < 0)
     int key = getGameAction(keyCode);
if(key == Canvas.FIRE){
     System.out.println("FIRE");
So, when Canvas.FIRE is 'pressed' i want MyMIDLET to know that it happend..
thanks again
indy

Similar Messages

  • Calling Portal event from ABAP class

    Hi Experts,
    I need a following clarificatrion, Please help,
    1. Is it possible to call a webdynpro method from a normal ABAP class?
    2. If no, we need a functionality of a class 'CL_WDR_HTTP_EXT_MIME_HANDLER' having method 'DO_DOMAIN_RELAX_HTML'.
    Is there any alternative method which can be used in ABAP having the same functionality.
    3. Is there any ways with which we can call portal event from ABAP class?
    Thanks,
    Shabir

    >1. Is it possible to call a webdynpro method from a normal ABAP class?
    I wouldn't necessarily recommend this approach. You shouldn't try to trigger events or any of the standard WDDO* methods from outside the WD Component itself.  That said, you can pass the object reference (like the WD_COMP_CONTROLLER object reference or the View Object Reference) into methods of normal classes.  Be careful if you are finding yourself calling a lot of your added methods from outside WD.  This is probably a sign that these methods should be in the Assistance Class or some other Class functioning as a Model Object.
    >2. If no, we need a functionality of a class 'CL_WDR_HTTP_EXT_MIME_HANDLER' having method 'DO_DOMAIN_RELAX_HTML'.
    Is there any alternative method which can be used in ABAP having the same functionality.
    What exactly do you want to do here?  Do you just want to get the relaxation script?  For what purpose?  You should never need to inject the relaxation script into WDA. 
    >3. Is there any ways with which we can call portal event from ABAP class?
    To what purpose.  Do you just want to delegate the triggering of the event that is inside WD Component to be called from a class?  If so you can pass the portal API object reference into a class from the WD Component.  However this only works while running within WD.
    How is this class used?  Are you running in WD?  Are you trying to generate some HTML code that runs in the portal independent of WD?

  • Fire event from one class to another.

    I have a Login JFrame class that allows users to enter username and password. I then have another JFrame class which will monitor when someone logs in. I am trying to get the username and password to appear on the monitor login frame text area when the user presses enter on the login frame.
    I can get it ot work by passing the Monitor class into the Login classes constructor but I want to be able to open the classes separately.When I try to open separatley at present I get java.lang.NullPointerException
         at project.LoginGUI.actionPerformed(LoginGUI.java:70) which is referring to the following code:      
    if(listen.equals("OK")){
         GymMonitor.username.setText(username.getText());     
    Both classes are in the same package. What I want to know is how to fire an event from one class to another? when the class you are firing to is constructed separately.
    I hope this question is not too verbose.
    Thanks

    Generally for something like this you would use a listener.
    Your login window is its own entity--it has a user interface, and it gets some information which someone else could ask it for. It could even generate its own events, such as when the user presses "OK". You would first define an interface for anyone who wants to know when someone logs in:
    public interface ILoginListener extends java.util.EventListener
      public void login(LoginEvent event);
    }You would then define the LoginEvent class to contain information like what the user entered for username and password. You could give your login dialog a couple of methods:
      private Vector myListeners = new Vector();
      public void addLoginListener(ILoginListener listener) {
        myListeners.add(listener);
      public void removeLoginListener(ILoginListener listener) {
        myListeners.remove(listener);
      protected void fireLogin(LoginEvent event) {
        for (Iterator it = myListeners.iterator(); it.hasNext(); ) {
          ILoginListener listener = (ILoginListener)it.next();
          listener.login(event);
      }You'd have your login dialog call fireLogin every time the user logged in.
    Then, you could implement ILoginListener in your monitor window:
      public void login(LoginEvent event) {
        // now do something with the event you just got.
      }All the code I put in here is really generic stuff. You'll write this kind of stuff hundreds of times probably during your career. I haven't tested it though.
    Hope this helps. :)

  • How can i raise events from a class?

    Hi all, i've a problem with events.. how can in java to raise an event and to catch him?
    For example i have ha class Counter like this:
    public class Counter
    int[] vettore = new int [10];
    int vetCnt = 0;
    void addNumber(int number)
    if (vetCnt < 10)
    vettore[vetCnt++] = number;
    for(int n=0;n<vetCnt;n++)
    System.out.print(vettore[n]);
    System.out.println();
    else
    System.out.println("Vector full!");
    The main class is like this:
    public class Main
    public static void main(String[] args)
    Counter cnt = new Counter();
    MyEventListener listener;
    cnt.addNumber(0);
    cnt.addNumber(1);
    cnt.addNumber(2);
    cnt.addNumber(3);
    cnt.addNumber(4);
    cnt.addNumber(5);
    cnt.addNumber(6);
    cnt.addNumber(7);
    cnt.addNumber(8);
    cnt.addNumber(9);
    cnt.addNumber(10);
    cnt.addNumber(11);
    cnt.addNumber(12);
    Now what i i want to raise an event that i can catch in the main class instead of print a message? I know how to do this in C#, but in Java is very different..
    Thank you

    newark wrote:
    ...to raise an event and to catch him?I'd also like it clarified how it was determined that an event is masculine.I've only ever heard of being manhandled.

  • Catch Event from a FileDownload!!!

    Hey magical people
    Somebody knows how can i catch an event from Element UI FileDownload?
    Thanks for all!!!

    A. Van de Camp,
    You can create two iViews that communicate with each other on the same page, using client-side eventing, so that the output of the first iView serves as the input to the second. Eventing in the portal is based on the use of the Enterprise Portal Client Manager (EPCM), an object defined by the portal client framework to handle functions such as client eventing.
    To define eventing between an iView created and existing in the portal(web dynpro iview), and an iView created in Visual Composer:
    1.Check the properties of the existing portal iView and find out its EPCM event name.
    2. In Storyboard, open the iView that is to be the second part of the eventing scenario and create the required port: as input or as output.
    3. Double-click the newly-created port and in the Configure Element task panel, enter the portal event name in the Signal name field and the EPCM event in the EPCM event field.
    Regards,
    Sami

  • How to catch events from SAP

    Hi everybody:
    I'm trying to set an event in SAP and catch it from a .NET progam using the .NET Connector.
    I have sow the function BP_EVENT_RISE but it seems it doesn't help enough.
    We want to verify if the users have use an especific transaction inside SAP program. We have user exits created and we only need to indicate over the .NET program who is listening for some event.
    How can I solve this?
    We are not using Business Connector.
    I will appreciate any suggestion.

    The User Exit only reflects one step of exit performed by the user.
    The events that i need to perform have the objetive to inform that some task have been performed inside SAP, a complete task, not only knowing that the user have finished his day work.
    The idea it's to know that the user finished a new human resource registration, beyond it's well done, I need to know the number of the human resource.
    On this point, I need to continue the registration in an automatic way over the security system (active directory), send an event to the person who have to regiter him over the corporate system and configure his mail (if needed).
    I have look and evaluate the advise, but it dosen't solve my needs. I have to wait until my user finished his job (or ask him to exit) each time he register a new human resorce, that's not my idea.
    Any other sugestion?. Thanks.

  • Need help with custom event from Main class to an unrelated class.

    Hey guys,
    I'm new to Flash and not great with OOP.  I've made it pretty far with google and lurking, but I've been pulling my hair out on this problem for a day and everything I try throws an error or simply doesn't hit the listener.
    I'm trying to get my Main class to send a custom event to an unrelated class called BigIcon.  The rest of the code works fine, it's just the addEventListener and dispatchEvent that isn't working.
    I've put in the relevant code in below.  Let me know if anything else is needed to troubleshoot.  Thank you!
    Main.as
    package
        import flash.display.MovieClip;
        import flash.events.MouseEvent;
        public class Main extends MovieClip
            var iconLayer_mc:MovieClip = new MovieClip();
            public function Main()
                Spin_btn.addEventListener(MouseEvent.CLICK,fl_MouseClickHandler);
                addChildAt(iconLayer_mc,0);
                placeIcons();
            function placeIcons():void
                var i:int;
                var j:int;
                for (i = 0; i < 4; i++)
                    for (j = 0; j < 5; j++)
                        //iconString_array has the names of illustrator objects that have been converted to MovieClips and are in the library.
                        var placedIcon_mc:BigIcon = new BigIcon(iconString_array[i][j],i,j);
                        iconLayer_mc.addChild(placedIcon_mc);
            function fl_MouseClickHandler(event:MouseEvent):void
                dispatchEvent(new Event("twitchupEvent",true));
    BigIcon.as
    package
        import flash.display.MovieClip;
        import flash.events.Event;
        import flash.utils.getDefinitionByName;
        public class BigIcon extends MovieClip
            private var iconImage_str:String;
            private var iconRow_int:int;
            private var iconColumn_int:int;
            public function BigIcon(iconImage_arg:String, iconRow_arg:int, iconColumn_arg:int)
                iconImage_str = iconImage_arg;
                iconRow_int = iconRow_arg;
                iconColumn_int = iconColumn_arg;
                this.addEventListener(Event.ADDED_TO_STAGE, Setup);
            function Setup(e:Event)
                this.y = iconRow_int;
                this.x = iconColumn_int;
                var ClassReference:Class = getDefinitionByName(iconImage_str) as Class;
                var thisIcon_mc:MovieClip = new ClassReference;
                this.addChild(thisIcon_mc);
                addEventListener("twitchupEvent", twitchUp);
            function twitchUp(e:Event)
                this.y +=  10;

    Ned Murphy wrote:
    You should be getting an error for the Main.as class due to missing a line to import the Event class...
    import flash.events.Event;
    My apologies, I should attempt to compile my example code before I ask for help...
    Alright, this compiles, gives me no errors, shows my 'book' and 'flowers' icons perfectly when ran, and prints 'addEventListener' to the output window as expected.  I get no errors when I press the button, 'dispatchEvent' is output (good), but the 'twitchUp' function is never called and 'EventTriggered' is never output. 
    How do I get the 'twitchUp' event to trigger?
    Main.as
    package
        import flash.display.MovieClip;
        import flash.events.MouseEvent;
        import flash.events.*;
        public class Main extends MovieClip
            var iconLayer_mc:MovieClip = new MovieClip();
            var iconString_array:Array = new Array(2);
            public function Main()
                Spin_btn.addEventListener(MouseEvent.CLICK,fl_MouseClickHandler);
                addChildAt(iconLayer_mc,0);
                buildStringArray();
                placeIcons();
            function buildStringArray():void
                var i:int;
                var j:int;
                for (i = 0; i < 2; i++)
                    iconString_array[i] = new Array(3);
                    for (j = 0; j < 3; j++)
                        if (Math.random() > .5)
                            //'flowers' is the name of an illustrator object that has been converted to a MovieClip and is in the library
                            iconString_array[i][j] = "flowers";
                        else
                            //'book' is the name of an illustrator object that has been converted to a MovieClip and is in the library
                            iconString_array[i][j] = "book";
            function placeIcons():void
                var i:int;
                var j:int;
                for (i = 0; i < 2; i++)
                    for (j = 0; j < 3; j++)
                        //iconString_array has the names of illustrator objects that have been converted to MovieClips and are in the library.
                        var placedIcon_mc:BigIcon = new BigIcon(iconString_array[i][j],i*50,j*50);
                        iconLayer_mc.addChild(placedIcon_mc);
            function fl_MouseClickHandler(event:MouseEvent):void
                dispatchEvent(new Event("twitchupEvent",true));
                trace("dispatchEvent");
    BigIcon.as
    package
        import flash.display.MovieClip;
        import flash.events.*;
        import flash.utils.getDefinitionByName;
        public class BigIcon extends MovieClip
            private var iconImage_str:String;
            private var iconRow_int:int;
            private var iconColumn_int:int;
            public function BigIcon(iconImage_arg:String, iconRow_arg:int, iconColumn_arg:int)
                iconImage_str = iconImage_arg;
                iconRow_int = iconRow_arg;
                iconColumn_int = iconColumn_arg;
                this.addEventListener(Event.ADDED_TO_STAGE, Setup);
            function Setup(e:Event)
                this.y = iconRow_int;
                this.x = iconColumn_int;
                var ClassReference:Class = getDefinitionByName(iconImage_str) as Class;
                var thisIcon_mc:MovieClip = new ClassReference;
                this.addChild(thisIcon_mc);
                addEventListener("twitchupEvent", twitchUp);
                trace("addEventListener");
            function twitchUp(e:Event)
                this.y +=  10;
                trace("EventTriggered");
    Output:
    [SWF] Untitled-1.swf - 40457 bytes after decompression
    addEventListener
    addEventListener
    addEventListener
    addEventListener
    addEventListener
    addEventListener
    dispatchEvent
    [UnloadSWF] Untitled-1.swf
    Test Movie terminated.

  • Catching Events from Com side using ActiveX bridge

    Hi,
    I have packaged a java swing application into an activex control using the ActiveX bridge. I now need to be able to fire events from my java code which the com/VB code needs to be able to trap. The event handler on the com side looks like this: function(BSTR param1, BSTR param2, BSTR param3), but the java event model only allows passing the EventObject in the param for the introspector to work. How do I fire an activex event that the com client is able to trap??

    Thanks, beders. Your solutions above works, although I found the only way to install the SDK was to the use following URL rather then the one beders suggested:
    http://www.microsoft.com/msdownload/platformsdk/sdkupdate/XPSP2FULLInstall.htm
    This SDK is the full one and not just the Core SDK so may take a little longer to download.
    You also need to ensure that the location to cmd.exe (ie. C:\WINDOWS\system32) is on the path variable otherwise SetEnv.bat fails when it calls cmd.
    J

  • Add/Remove datagridview event from other class

    Hi,
    I have a 'Class A' which have a datagridview object with cellvaluechanged event. i pass this datagridview as byreference to 'Class B'.
    i need to remove/add the cellvaluechanged event of given datagridview object from 'Class B'.
    below is my code
    Thanks and Regards
    Kasim

    Hi Thangam-Kasim,
    If you want to add/remove the event of DataGridView in ClassB.
    You need to add a reference of Class A in Class B.
    I supposed the ClassA is Form1, The Class B is Form2. in Form2, there is a method called SetDataSource() like yours.
    Then you could add/remove the event like below.
    Public Sub SetDataSource(ByVal dt As DataTable, ByRef DGView As DataGridView)
    Dim dgvrow As DataGridViewRow
    If DGView.Rows.Count > 0 Or DGView.DataSource IsNot Nothing Then
    DGView.Rows.Clear()
    End If
    Dim form1 As Form1 = Application.OpenForms.OfType(Of Form1)().FirstOrDefault()
    RemoveHandler DGView.CellValueChanged, AddressOf form1.DataGridView1_CellValueChanged
    AddHandler DGView.CellValueChanged, AddressOf form1.DataGridView1_CellValueChanged
    End Sub
    In Form1, you need to set the DataGridView1_CellValueChanged method to Public.
    If you have any other concern regarding this issue, please feel free to let me know.
    Best regards,
    Youjun Tang
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • Handling Custom JavaScript Events from HtmlLoader Class

    Hey guys, just a quick question, Is it possible to handle custom javascript events just the way standard events like locationchange and DOMInitialized are handled. Say for example a HTML5 slide application that dispatches custom events when the user moves from one slide to another. I know there is an option to use ExternalInterface to talk to AS3 but for this project of mine, this is not an oiption as this HTML5 Presentation doesnt have any swf content to bridge with.
    Its just a thought since the HTMLloader has access to the javascript window object(or am i wrong). Would it be possible to access a custom function as a prototyped property of the window Object.
    Any form of tip/clarification will be appreciated.
    thanks!

    Use the HTMLHost class. You create a subclass of HTMLHost and override certain methods that are called in response to certain JavaScript behaviors. Then you assign an instance of your HTMLHost to the HTMLLoader's htmlHost property. (Since you're using the Flex HTML component, you would assign your HTMLHost subclass instance to the HTML control's htmlHost property.)

  • Problem catching events from my ComboBoxItemRenderer

    Hi all,
    I have a problem catching a custom event dispatched by my
    custom ComboBoxItemRenderer. In the renderer I dispatch an event as
    follows:
    dispatchEvent(new Event("smallTest",true,true));
    As this is a bubbling event i expected to be able to catch it
    in one of the parent containers. However, the opposite is true.
    Then, lowering my goals i tried to catch the MouseEvent.CLICK event
    raised by the button in the ComboBoxItemRenderer. I failed in the
    same way...
    Somebody has a clue? Thanks in advance!
    (the following is an isolated description of my small problem
    The Mainapp
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="
    http://www.adobe.com/2006/mxml"
    creationComplete="init()" layout="absolute" xmlns:local="*">
    <mx:Script>
    <![CDATA[
    import mx.controls.Alert;
    import mx.collections.ArrayCollection;
    [Bindable]
    public var aDataProvider:ArrayCollection = new
    ArrayCollection(
    [ {label:"one", data:1},
    {label:"two", data:2},
    {label:"three", data:3} ]);
    private function init() : void {
    addEventListener("smallTest", doAlert);
    private function doAlert(event : Event) : void {
    Alert.show("yo");
    ]]>
    </mx:Script>
    <mx:ComboBox id="cb" itemRenderer="ComboBoxItemRenderer"
    dataProvider="{aDataProvider}" width="200"/>
    </mx:Application>
    The Renderer
    <?xml version="1.0" encoding="utf-8"?>
    <mx:HBox xmlns:mx="
    http://www.adobe.com/2006/mxml"
    width="100%">
    <mx:Script>
    <![CDATA[
    import mx.core.Application;
    private function doClick() : void {
    dispatchEvent(new Event("smallTest",true,true));
    ]]>
    </mx:Script>
    <mx:Label color="red" text="{data.label}"/>
    <mx:Spacer width="100%"/>
    <mx:Button label="*" width="40" click="doClick()"/>
    </mx:HBox>

    Listening from the combobox (cb) didn't work. Found out that
    the hierarchical parent list from the view of the itemrenderer was
    as follows:
    List18.ListBaseContentHolder21
    List18
    [object _ComboboxTest_mx_managers_SystemManager]
    [object Stage]
    For now, i managed to fix the problem by listening from the
    systemManager but this is more like a hack.

  • Bug fix requires switching touch events from symbols/classes to the main stage?

    Also posted in Mobile Development, I'm still not sure which forum I should be in.
    For previous threads:
    http://forums.adobe.com/thread/864057
    http://forums.adobe.com/thread/863566
    http://forums.adobe.com/thread/864262
    http://forums.adobe.com/thread/863597
    Bug ID #2940816
    I  have an app that wasn't compiling correctly. I sent the bug to Adobe  who responded with a workaround. However, I can't figure out how to make  their stated workaround work in my code.
    I have puzzle  pieces on the stage. Each is assigned to a separate class. Inside the  class I have touch events defining multiple touch events for each piece.
    I  have another spot on the stage where, when it is touched, a puzzle  piece appears. These are also each linked to a separate class. Inside  this class I also have touch events defining multiple touch events for  each piece.
    Though it works fine on my computer, it wasn't  working on an iPad. Adobe said that I needed to switch the touch events  so that they were assigned to the main stage instead of to each  individual object.
    However, the code they gave me didn't really make sense in context and I'm confused how to implement it.
    This is the code in the class for each piece that is created when you touch the stage:
            public function GeoPiece(): void {
                if (PuzzleGlobals.currentLevel == "Name") {
                    this.gotoAndStop("wholeName");
                else if (PuzzleGlobals.currentLevel == "Abbrev") {
                    this.gotoAndStop("abbrev");
                else if (PuzzleGlobals.currentLevel == "Shape") {
                    this.gotoAndStop("shape");
                this.addEventListener(TouchEvent.TOUCH_MOVE, geoPieceBegin);
            public function geoPieceBegin (e:TouchEvent): void {
                PuzzleGlobals.pieceActive = true;
                e.target.startTouchDrag(e.touchPointID, false);
                e.target.addEventListener(TouchEvent.TOUCH_END, geoPieceEnd);
                e.target.interactionBegin();
                MovieClip(this.parent.parent).nameDisplay.gotoAndStop(e.target.abbrev );
                PuzzleGlobals.currentPiece = e.target.abbrev;
            public function geoPieceEnd (e:TouchEvent): void {
                PuzzleGlobals.pieceActive = false;
                if (currentObjOver.isLocked == true) {
                    currentObjOver.gotoAndStop ("Lock");
                else {
                    currentObjOver.gotoAndStop ("Out");
                MovieClip(this.parent.parent).nameDisplay.gotoAndStop(PuzzleGlobals.c hosenPuzzle);
                e.target.stopTouchDrag(e.touchPointID);
                if (this.dropTarget.parent is GeoPuzzle) {
                    if (GeoPuzzle(this.dropTarget.parent).abbrev == e.target.abbrev) {
                        PuzzleGlobals.statesCompletedUSA++;
                        GeoPuzzle(this.dropTarget.parent).isLocked = true;
                        GeoPuzzle(this.dropTarget.parent).gotoAndStop("Lock");
                        e.target.parent.removeChild(DisplayObject(e.target));
                    else {
                        //play BOOP sound indicated wrong drop;
                if (PuzzleGlobals.statesCompletedUSA == PuzzleGlobals.TOTAL_NUMBER_USA) {
                    //play fireworks game
                else {
                    //do nothing
                e.target.removeEventListener(TouchEvent.TOUCH_END, geoPieceEnd);
            public function interactionBegin () {
                 if (this.dropTarget != null && this.dropTarget.parent is  GeoPuzzle) { //check to make sure it's over a puzzle piece
                    currentObjOver = GeoPuzzle(this.dropTarget.parent);
                    currentObjOver.gotoAndStop("Over");
                if (lastObjOver != currentObjOver) {
                    if (lastObjOver.isLocked == true) {
                        lastObjOver.gotoAndStop("Lock");
                    else {
                        lastObjOver.gotoAndStop("Out");
                    lastObjOver = currentObjOver;
    This is the code in the class for each piece that's already on the stage:
            public function GeoPuzzle(): void {
                if (this.isLocked == true) {
                    this.gotoAndStop ("Lock");
                if (PuzzleGlobals.pieceActive == true) {
                    this.addEventListener(TouchEvent.TOUCH_BEGIN, geoPuzzleBegin);
            public function geoPuzzleBegin (e:TouchEvent): void {
                e.target.addEventListener(TouchEvent.TOUCH_END, geoPuzzleEnd);
                e.target.gotoAndStop("Over");
                MovieClip(this.parent).nameDisplay.gotoAndStop(e.target.abbrev);
            public function geoPuzzleEnd (e:TouchEvent): void {
                if (e.target.isLocked == false) {
                    e.target.gotoAndStop("Off");
                else if (e.target.isLocked == true) {
                    e.target.gotoAndStop("Lock");
                MovieClip(this.parent).nameDisplay.gotoAndStop(PuzzleGlobals.chosenPu zzle);
                e.target.removeEventListener(TouchEvent.TOUCH_END, geoPuzzleEnd);
    You  can see that each piece (whether it's already locked on the stage or  movable) reacts differently to different touch events. However, this is  the code that Adobe gave me as a workaround:
    this.stage.addEventListener(TouchEvent.TOUCH_BEGIN, onTouchEvent);
    this.stage.addEventListener(TouchEvent.TOUCH_MOVE, onTouchEvent);
    this.stage.addEventListener(TouchEvent.TOUCH_END, onTouchEvent);
    var beginCount:uint=0;
    var moveCount:uint=0;
    var endCount:uint=0;
    function onTouchEvent(event:TouchEvent):void{
         switch (event.type){
              case TouchEvent.TOUCH_BEGIN:
               &nbs p;           &n bsp; trace("BEGIN")
               &nbs p;           &n bsp; beginCount++;
               &nbs p;           &n bsp; square.x = event.stageX;
               &nbs p;           &n bsp; square.y = event.stageY;
               &nbs p;           &n bsp; square.startTouchDrag(event.touchPointID, false);
               &nbs p;           &n bsp; break;
              case TouchEvent.TOUCH_MOVE:
               &nbs p;           &n bsp; trace("MOVE")
               &nbs p;           &n bsp; moveCount++;
               &nbs p;           &n bsp; break;
              case TouchEvent.TOUCH_END:
               &nbs p;           &n bsp; trace("END")
               &nbs p;           &n bsp; endCount++;
               &nbs p;           &n bsp; square.stopTouchDrag(event.touchPointID);
               &nbs p;           &n bsp; break;
         trace("begin: "+beginCount+" move: "+moveCount+" end: "+endCount);
    //     countText.text = "begin: "+beginCount+" move: "+moveCount+" end: "+endCount;
    This  doesn't make any sense to me because it seems that it would only work  if touching the stage had to react in just a single way. I have multiple  pieces that need to each react differently.
    1. The pieces that are locked to the stage need to highlight when touched and display their name.
    2.  These pieces also need to keep themselves highlighted and their names  displayed when the touch is dragged off of them instead of just removed.
    3.  Each piece needs to be created when touching the Puzzle Piece button  the stage. As these pieces are dragged, they need to highlight the  pieces underneath them and unhighlight them when they are dragged off.  They also need to display their own names, and lock into place when they  are dragged over the correct piece.
    My questions are:
    1. Why don't touch events work in the compiler?
    2. How can I translate my current working code's touch events to all be directly linked to the stage instead of their objects?
    Thanks so much!
    Amber

    Sure!
    I haven't changed much. I've been playing around and I think I know where the problem is coming from now. I just can't figure out how to fix it.
    This it the only code I've modified:
            public function interactionBegin () {
                trace ("Current: " + currentObjOver);
                trace ("Last: " + lastObjOver);
                if (this.dropTarget != null && this.dropTarget.parent is GeoPuzzle) { //check to make sure it's over a puzzle piece
                    currentObjOver = GeoPuzzle(this.dropTarget.parent); //make "currentObjOver" assigned to the puzzle piece the finger is currently touching
                    currentObjOver.gotoAndStop("Over"); //highlight the current piece
                    if (currentObjOver != lastObjOver) { //if your finger moves and you're now touching a different state
                        if (lastObjOver != null && lastObjOver.isLocked == true) { //if the previous state you were touching has been solved
                            lastObjOver.gotoAndStop("Lock"); //lock this state into place
                        else if (lastObjOver != null && lastObjOver.isLocked == false) { //if the previous state you were touching wasn't solved
                            lastObjOver.gotoAndStop("Off"); //unhighlight that state
                        lastObjOver = currentObjOver; //assign the current state to be the last state you were touching
    lastObjOver and currentObjOver are always assigned the same object. I can't figure out why, I've run it line by line but I can't figure out where I'm going wrong.

  • Switching touch events from symbols/classes to the main stage?

    For previous threads:
    http://forums.adobe.com/thread/864057
    http://forums.adobe.com/thread/863566
    http://forums.adobe.com/thread/864262
    http://forums.adobe.com/thread/863597
    Bug ID #2940816
    I have an app that wasn't compiling correctly. I sent the bug to Adobe who responded with a workaround. However, I can't figure out how to make their stated workaround work in my code.
    I have puzzle pieces on the stage. Each is assigned to a separate class. Inside the class I have touch events defining multiple touch events for each piece.
    I have another spot on the stage where, when it is touched, a puzzle piece appears. These are also each linked to a separate class. Inside this class I also have touch events defining multiple touch events for each piece.
    Though it works fine on my computer, it wasn't working on an iPad. Adobe said that I needed to switch the touch events so that they were assigned to the main stage instead of to each individual object.
    However, the code they gave me didn't really make sense in context and I'm confused how to implement it.
    This is the code in the class for each piece that is created when you touch the stage:
            public function GeoPiece(): void {
                if (PuzzleGlobals.currentLevel == "Name") {
                    this.gotoAndStop("wholeName");
                else if (PuzzleGlobals.currentLevel == "Abbrev") {
                    this.gotoAndStop("abbrev");
                else if (PuzzleGlobals.currentLevel == "Shape") {
                    this.gotoAndStop("shape");
                this.addEventListener(TouchEvent.TOUCH_MOVE, geoPieceBegin);
            public function geoPieceBegin (e:TouchEvent): void {
                PuzzleGlobals.pieceActive = true;
                e.target.startTouchDrag(e.touchPointID, false);
                e.target.addEventListener(TouchEvent.TOUCH_END, geoPieceEnd);
                e.target.interactionBegin();
                MovieClip(this.parent.parent).nameDisplay.gotoAndStop(e.target.abbrev);
                PuzzleGlobals.currentPiece = e.target.abbrev;
            public function geoPieceEnd (e:TouchEvent): void {
                PuzzleGlobals.pieceActive = false;
                if (currentObjOver.isLocked == true) {
                    currentObjOver.gotoAndStop ("Lock");
                else {
                    currentObjOver.gotoAndStop ("Out");
                MovieClip(this.parent.parent).nameDisplay.gotoAndStop(PuzzleGlobals.chosenPuzzle);
                e.target.stopTouchDrag(e.touchPointID);
                if (this.dropTarget.parent is GeoPuzzle) {
                    if (GeoPuzzle(this.dropTarget.parent).abbrev == e.target.abbrev) {
                        PuzzleGlobals.statesCompletedUSA++;
                        GeoPuzzle(this.dropTarget.parent).isLocked = true;
                        GeoPuzzle(this.dropTarget.parent).gotoAndStop("Lock");
                        e.target.parent.removeChild(DisplayObject(e.target));
                    else {
                        //play BOOP sound indicated wrong drop;
                if (PuzzleGlobals.statesCompletedUSA == PuzzleGlobals.TOTAL_NUMBER_USA) {
                    //play fireworks game
                else {
                    //do nothing
                e.target.removeEventListener(TouchEvent.TOUCH_END, geoPieceEnd);
            public function interactionBegin () {
                if (this.dropTarget != null && this.dropTarget.parent is GeoPuzzle) { //check to make sure it's over a puzzle piece
                    currentObjOver = GeoPuzzle(this.dropTarget.parent);
                    currentObjOver.gotoAndStop("Over");
                if (lastObjOver != currentObjOver) {
                    if (lastObjOver.isLocked == true) {
                        lastObjOver.gotoAndStop("Lock");
                    else {
                        lastObjOver.gotoAndStop("Out");
                    lastObjOver = currentObjOver;
    This is the code in the class for each piece that's already on the stage:
            public function GeoPuzzle(): void {
                if (this.isLocked == true) {
                    this.gotoAndStop ("Lock");
                if (PuzzleGlobals.pieceActive == true) {
                    this.addEventListener(TouchEvent.TOUCH_BEGIN, geoPuzzleBegin);
            public function geoPuzzleBegin (e:TouchEvent): void {
                e.target.addEventListener(TouchEvent.TOUCH_END, geoPuzzleEnd);
                e.target.gotoAndStop("Over");
                MovieClip(this.parent).nameDisplay.gotoAndStop(e.target.abbrev);
            public function geoPuzzleEnd (e:TouchEvent): void {
                if (e.target.isLocked == false) {
                    e.target.gotoAndStop("Off");
                else if (e.target.isLocked == true) {
                    e.target.gotoAndStop("Lock");
                MovieClip(this.parent).nameDisplay.gotoAndStop(PuzzleGlobals.chosenPuzzle);
                e.target.removeEventListener(TouchEvent.TOUCH_END, geoPuzzleEnd);
    You can see that each piece (whether it's already locked on the stage or movable) reacts differently to different touch events. However, this is the code that Adobe gave me as a workaround:
    this.stage.addEventListener(TouchEvent.TOUCH_BEGIN, onTouchEvent);
    this.stage.addEventListener(TouchEvent.TOUCH_MOVE, onTouchEvent);
    this.stage.addEventListener(TouchEvent.TOUCH_END, onTouchEvent);
    var beginCount:uint=0;
    var moveCount:uint=0;
    var endCount:uint=0;
    function onTouchEvent(event:TouchEvent):void{
         switch (event.type){
              case TouchEvent.TOUCH_BEGIN:
                             trace("BEGIN")
                             beginCount++;
                             square.x = event.stageX;
                             square.y = event.stageY;
                             square.startTouchDrag(event.touchPointID, false);
                             break;
              case TouchEvent.TOUCH_MOVE:
                             trace("MOVE")
                             moveCount++;
                             break;
              case TouchEvent.TOUCH_END:
                             trace("END")
                             endCount++;
                             square.stopTouchDrag(event.touchPointID);
                             break;
         trace("begin: "+beginCount+" move: "+moveCount+" end: "+endCount);
    //     countText.text = "begin: "+beginCount+" move: "+moveCount+" end: "+endCount;
    This doesn't make any sense to me because it seems that it would only work if touching the stage had to react in just a single way. I have multiple pieces that need to each react differently.
    1. The pieces that are locked to the stage need to highlight when touched and display their name.
    2. These pieces also need to keep themselves highlighted and their names displayed when the touch is dragged off of them instead of just removed.
    3. Each piece needs to be created when touching the Puzzle Piece button the stage. As these pieces are dragged, they need to highlight the pieces underneath them and unhighlight them when they are dragged off. They also need to display their own names, and lock into place when they are dragged over the correct piece.
    My questions are:
    1. Why don't touch events work in the compiler?
    2. How can I translate my current working code's touch events to all be directly linked to the stage instead of their objects?
    Thanks so much!
    Amber

    I am going to copy and paste this answer into all of the forums I've asked this question in case some noob like me comes along and needs the answer.
    I found the problem! After 3 months I finally figured out what was wrong and why my app was working in Device Central when exported as Flash 10.1 and not on my iPad when exported as AIR for iOS.
    The problem is that in the Flash runtime, if a line of code returns a bug, the flash runtime says "Error, shmerror, try again next time." So I had one if, else statement that was executing when it wasn't supposed to be - only once, at the very beginning of the program. It was throwing an error. When I exported as Flash, flash didn't care, and still executed the code later when it was supposed to. But Apple won't let their programs crash. So instead of just trying that code again, Apple decided, after the first error was thrown, that it would then COMPLETELY IGNORE that line of code. So the error was in the line where the states would unhighlight themselves. Apple just shut down that line of code, that's why it wouldn't execute properly.
    I ended up changing this line of code
    if (lastObjOver != null && lastObjOver.isLocked == true)
    which threw an error when the piece was FIRST dragged over the puzzle, to to this
    if (lastObjOver.parent != null && lastObjOver.isLocked == true)
    which wouldn't throw the error.
    Problem solved!
    If anyone else is having this problem, I suggest you do what I did. Change all your touch events to mouse events so you can run the program in the adc debugger. That's when I discovered the error being thrown.

  • Catch events in each class/form

    Hi, i'm developing an ADD-ON with VB6 and SAP B1 2005 A.
    I instantiate a public SAPbouiCOM.Application object.
    I'd like to pass it to my classes(one for each form) to manage in each class only events regarding that form to keep code cleaner.
    So i did:
    'In my class/form named 'clsSAPUI_Turni'
    Private WithEvents m_SAP_Application As SAPbouiCOM.Application
    Public Property Let SAP_Application(ByVal pSAP_Application As SAPbouiCOM.Application)
        Set m_SAP_Application = pSAP_Application
    End Property
    Private Sub m_SAP_Application_ItemEvent(ByVal FormUID As String, pVal As SAPbouiCOM.IItemEvent, BubbleEvent As Boolean)
    End Sub
    'Externally:
    Set oForm = New clsSAPUI_Turni
    oForm.SAP_Application = SBOFormApplication
    oForm.Show
    The ItemEvent event only triggers for LOAD, GOTFOCUS and ACTIVATE events but suddenly i receive no more notifications. For example click event doesn't fire.
    I didn't make any event filters yet.
    On the other side, events on my SBOFormApplication public object they all trigger.
    Why?
    Can anybody help me?
    Thanks
    Paolo

    Sorry,
    i did a stupid mistake.
    I declared locally class instance variable....
    sorry for wasting you time.
    Paolo

  • Catch event from Web Dynpro for Java

    Dear guru's,
    we have a working Web Dynpro for Java. It delivers a company code that needs to be routed to a visual composer model. In the Web Dynpro we use the WDPortalEventing.fire command to trigger an event named 'ShowCompanyCode' in namespace com.sap.vc:epcm. In the visual composer, I used a 'signal in' for the same namespace and event name. However, the supplied value for the company code is not received. Both iviews (from VC and Web Dynpro) are on one page.
    I have enabled the flash debug console and did some testing with a VC model that consists of two iviews on one page. Here it does work. I have found some differences in the debug output that points in a direction.
    In the case of the VC iviews, I get the following string in the debug console: signalinAHAPP -<Params version="2" ><Row STR1="1000" /></Params>. This results in a correct transfer of company code value '1000'.
    When getting the info from the Web Dynpro iview, I get the following string:  signalinAHAO8 -1000. It seems that the web dynpro does not supply the values in a correct way. However, the same mechanism is used to supply the data to another web dynpro iview and that works fine.
    Do we have to use special coding to be able to fire the event to a VC iview? Any help will be appreciated and points will be awarded!
    Thanks,
    Arno

    A. Van de Camp,
    You can create two iViews that communicate with each other on the same page, using client-side eventing, so that the output of the first iView serves as the input to the second. Eventing in the portal is based on the use of the Enterprise Portal Client Manager (EPCM), an object defined by the portal client framework to handle functions such as client eventing.
    To define eventing between an iView created and existing in the portal(web dynpro iview), and an iView created in Visual Composer:
    1.Check the properties of the existing portal iView and find out its EPCM event name.
    2. In Storyboard, open the iView that is to be the second part of the eventing scenario and create the required port: as input or as output.
    3. Double-click the newly-created port and in the Configure Element task panel, enter the portal event name in the Signal name field and the EPCM event in the EPCM event field.
    Regards,
    Sami

Maybe you are looking for

  • Acrobat Pro 9.3 Crashes when opening multiple files

    Acrobat Pro 9.3 Crashes when opening multiple files. I have not seen any solutions in forums that solves this problem. I have just done the most recent update and it still crashes.

  • What is a compatible router for the Ellipsis Jetpack

    I recently got the Ellipsis Jetpack.  Works fine with wireless but I have a DVR that I use for home security that requires hard-wiring.  I tried a TP-Link portable router but found out (after the fact) that the ellipsis is not compatible with it. Doe

  • Nas 200 connection - pingable, but not accessable

    bringing this issue to life again.... http://homecommunity.cisco.com/t5/Network-Storage/NAS-200/m-p/351520/highlight/true#M7549 My nas 200 seems to lose the authentication and web service every once in a while.  I can still ping the device and get a

  • LX26, Quant for storage bin can not be counted

    T code LX26 , executed for a WH/storage Type .The report displays some bins as Ready/Blocked or Overdue /Blocked and when trying to activate those for counting the error message flashes - Quant for storage Types XXX can not be counted . How can I unb

  • Skype crashes when starting up after updating to 7...

    this is getting frustrating, i've uninstalled and reinstalled several times, cleared out all appdata and everything and ran dxdiag Solved! Go to Solution. Attachments: DxDiag.zip ‏13 KB