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

Similar Messages

  • 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

  • How to catch events on user tables forms?

    Hi all,
    Is there any way to catch the events on user defined tables' form which opens from Tools-User Tables? The form Id we get is not unique so we can't initialize the form with that ID or put it in  an If  loop for pval.formUId.
    any clues?
    Thanks in advance.....

    Hi Binita,
    The UDT form should have a form type in the format:
    110xxx
    where xxx is the value in the TblNum field in the OUTB table (eg 110015 if the TblNum field is 15).
    Therefore, you can query the OUTB table for your UDT name and get the correct TblNum value and then calculate the correct form type for your table. If you want to filter events then you'll need to run this query as your addon starts and dynamically add the correct event types and filters to your addon.
    Kind Regards,
    Owen

  • Problem catching events after opening system form

    Hi
    In my addon i open a system form from a user form. after closing the system form , my user form does not cause any event to be handled by my addon. in other words pressing on the forms button items does not cause any event to accure. in order for the form to work i need to close the form and reopen it from the menu. question is how can i know what is causing the form to stop responding and how can i fix it?
    appreciate the help
    Yoav

    Hi Yoav,
    It looks like when the system, form closes you remove a filter for your user form or your remove the listener for your user form.
    Regards
    Ad

  • Cannot catching events on some forms.

    Hello,
    When you go to Issue for Production and click Production Order cfl will pop up with production orders currently available and then when you select one or more orders another form will show with all the items from production orders selected from cfl.
    I created very similar workflow but I cannot catch events with that latter form (the one that displays items from selected production orders). I would like to be able to react to item pressed event or item click.
    It seems as if I cannot catch events on a form created inside cfl.
    What is going on?
    Thanks in advance.
    Wydrzycki Kamil

    Dear Kamil,
    it is possible. I know that there are several forms in SAP B1, which missing some general events (ex: service form)
    please download B1 Event Logger (Starting from B1DE 1.5) , and check out the event flow.
    Link:
    http://www.sdn.sap.com/irj/sdn/index?rid=/webcontent/uuid/a175fb62-0c01-0010-a8b5-fa58a13b1cf7 [original link is broken]
    Regards,
    J

  • Which are the standard classes for events in ALV and explain each class pls

    which are the standard classes for events in ALV and explain each class pls
    POINTS WILL BE AWARDED,
    REGARDS,
    jagrut bharatkumar Shukla

    hi,
    some links.
    www.sapgenie.com
    www.abap4u.com
    http://help.sap.com/saphelp_nw2004s/helpdata/en/5e/88d440e14f8431e10000000a1550b0/frameset.htm
    download the PDF from following link.
    http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCSRVALV/BCSRVALV.pdf
    The ALV object Grid methods allow the same functionality as ALV grid report function modules but are displayed within
    a screen (dialog program). SAP has provided a suit of programs which demonstrate how to For examples see standard SAP
    programs as detailed below:
    BCALV_EDIT_01 This report illustrates the simplest case of using an editable/noneditable ALV Grid Control.
    BCALV_EDIT_02 This report illustrates how to set chosen cells of an ALV Grid Control editable.
    BCALV_EDIT_03 In this example the user may change values of fields SEATSOCC (occupied seats) and/or PLANETYPE.
    The report checks the input value(s) semantically and provides protocol messages in case of error
    BCALV_EDIT_04 This report illustrates how to add and remove lines to a table using the ALV Grid Control and how to
    implement the saving of the new data.
    BCALV_EDIT_05 This example shows how to use checkboxes within an ALV Grid Control. You learn:
         (1) how to define a column for editable checkboxes for an attribute of your list
         (2) how to evaluate the checked checkboxes
         (3) how to switch between editable and non-editable checkboxes
    BCALV_EDIT_06 This example shows how to define a dropdown listbox for all cells of one column in an editable ALV
    Grid Control.
    BCALV_EDIT_07 This example shows how to define dropdown listboxes for particular cells of your output table.
    BCALV_EDIT_08 This report implements an ALV Grid Control with an application specific F4 help. The following aspects
    are dealt with:
         (1) how to replace the standard f4 help
         (2) how to pass the selected value to the ALV Grid Control
         (3) how to build an f4 help, whose value range depend on a value of another cell.
    Rgds
    Anversha

  • 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.

  • 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.

  • How to customize SORT event in the View Form ?

    I'm using Jdevelper 9.0.3 with BC4J+UIXML, and I need customize the View Object Query, including "bind variables" as:
    SELECT A.COD_CLIENTE,
    A.NUM_TESTE,
    A.NOM_TESTE
    FROM TESTE A
    WHERE A.COD_CLIENTE = :1
    I create the java class for prepare assign values to View Object as:
    //Nome da Package da Tela Detail
    package br.com.siadem.siaed.ed00010;
    // Importa as Bibliotecas necessárias
    import oracle.jbo.ViewObject;
    import oracle.cabo.servlet.BajaContext;
    import oracle.cabo.servlet.Page;
    import oracle.cabo.servlet.event.PageEvent;
    import oracle.cabo.servlet.event.EventResult;
    import oracle.cabo.data.jbo.servlet.bind.*;
    import oracle.cabo.ui.data.BoundValue;
    import oracle.cabo.ui.data.DataBoundValue;
    import br.com.siadem.siaed.util.*;
    public class FunPreQuery
    public static EventResult FunConfiguraQuery(BajaContext context, Page page, PageEvent event) throws Throwable
    TrataDadosSessao varDadosSessao = new TrataDadosSessao();
    // Configura os Parametros
    String valor1 = varDadosSessao.getCodCliente();
    // Cria o objeto ViewObject para a difinição dos parametro na Query
    ViewObject view = ServletBindingUtils.getViewObject(context);
    // Configura os parametros na query do ViewObject
    view.setWhereClauseParam(0,valor1);
    // Executa a Query
    view.executeQuery();
    // Retorna o Resultado para a Página
    return new EventResult(page);
    This works very well customizing the "Search" event in the View form as:
    <event name="search" >
    <!-- using the ApplicationModule causes it to be checked out from the
    ApplicationPool. It is released using stateful mode. -->
    <bc4j:findRootAppModule name="TesteView1AppModule" >
    <!-- establish the ViewObject scope -->
    <bc4j:findViewObject name="TesteView1" >
    <!-- search for the view criteria -->
    <bc4j:findByExample>
    <bc4j:exampleRow ignoreCase="true" >
    <bc4j:exampleAttribute>
    <bc4j:nameBinding><bc4j:parameter name="attrName" /></bc4j:nameBinding>
    <bc4j:valueBinding><bc4j:parameter name="attrValue" /></bc4j:valueBinding>
    </bc4j:exampleAttribute>
    </bc4j:exampleRow>
    </bc4j:findByExample>
    <method class="br.com.siadem.siaed.ed00010.FunPreQuery"
    method="FunConfiguraQuery"/>
    <!--<bc4j:executeQuery/>-->
    <!-- store the current search criteria as page properties -->
    <bc4j:setPageProperty name="attrName" >
    <bc4j:parameter name="attrName" />
    </bc4j:setPageProperty>
    <bc4j:setPageProperty name="attrValue" >
    <bc4j:parameter name="attrValue" />
    </bc4j:setPageProperty>
    </bc4j:findViewObject>
    </bc4j:findRootAppModule>
    </event>
    I'm use the sortable columns with <bc4j:sortablecolumn> as:
    <bc4j:column attrName="NomTeste">
    <columnHeader>
    <bc4j:sortableHeader/>
    </columnHeader>
    <contents>
    <bc4j:input readOnly="true"/>
    </contents>
    </bc4j:column>
    But, the "Sort" event does not enable a manual control for call Java Class. When user click in any sortable column, occur the follow error:
    oracle.jbo.SQLStmtException: JBO-27122: SQL error during statement preparation. Statement: SELECT A.COD_CLIENTE, A.NUM_TESTE, A.NOM_TESTE FROM TESTE A WHERE a.cod_cliente = :1 ORDER BY A.NUM_TESTE ASC
    Anybody know to implement this functionality ?

    Ok, the solution:
    Sort BC4J table with reduced view objects

  • ALV catch EVENT

    Hi everybody!
    Do you know event for ALV, which work as event "delayed_callback" but faster.
    I want find event which triggered in moment move from one cell to another.
    P.S. sorry for my english

    Hi,
    you need to SET The pf status using the PFstatus option,
    here you have to set the OKCODE for the Green tick button
    that is related to enter.
    say ENTR for the Green Tick button and catch it in User Command form.
    you need to have two forms
    one for pf status, one for user_command.
    Regards
    vijay

  • ALV Catch Event's

    Hi,
        l am using 'REUSE_ALV_GRID_DISPLAY'.
    I am able to catch event, from ALV list, example DBLCLICK.
    I would like to catch command from key pad also, example ENTER.
    How can l do?

    Hi,
    you need to SET The pf status using the PFstatus option,
    here you have to set the OKCODE for the Green tick button
    that is related to enter.
    say ENTR for the Green Tick button and catch it in User Command form.
    you need to have two forms
    one for pf status, one for user_command.
    Regards
    vijay

  • 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.

  • Dispatching events between different classes

    Im trying to dispatch and event from an XML class.
    dispatchEvent(new Event (XMLClass.INDEX_CHANGED));
    and catch it in the display class
    import AS.XMLClass;
    private var _xml  = new XMLClass();
    _xml.addEventListener(XMLClass.XML_LOADED, swapImage);
    I know that im missing something because the application works
    and the function runs but its not dispatching the event the event
    or maybe it's not catching the event in the display class, even though everything else is working
    and im not gettin' any errors.

    that's exactly what i did.
    i have 3 classes
    AS.XMLClass
    AS.ControlClass
    AS.DisplayClass
    It's like a slideshow thing.
    I have a button on stage thats connected to the control class and every time you press it
    it changes the index of the image in the xmlclass and everytime that the index is changed the xmlclass needs to
    dispatch and event that the index has changed and the display class is going to catch the event and change the image
    everything is working except the xmlclass dispatch event or the displayclass catch event
    XMLCLASS
    public static const INDEX_CHANGED:String = "indexChanged";
    private function dataLoaded(event:Event):void{
                trace("xml file is loaded");
                data = new XML(loader.data);
                dispatchEvent(new Event(XMLClass.XML_LOADED));
                totalItems = data.images.photo.length();
                setCurrentIndex(currentIndex);
    CONTROL CLASS
    import AS.XMLClass;
    private var _xml = new XMLClass();
    public function leftButtonClicked(){
                _xml.setCurrentIndex(_xml.currentIndex = _xml.currentIndex - 1);
            public function rightButtonClicked(){
                _xml.setCurrentIndex(_xml.currentIndex = _xml.currentIndex + 1);
    DISPLAY CLASS
    import AS.XMLClass;
    private var _xml  = new XMLClass();
    _xml.addEventListener(XMLClass.XML_LOADED, swapImage);
    public function swapImage(event:Event){
                trace("working....");

  • Catch event ctrl + V

    Hello
    I want to know if is possible to catch event ctrl + V, because I need that when the user presses this combination of keys on textbox, changes the mode of form.
    I hope that they can help me, thanks.

    HI
    You can use the SAPbouiCOM.BoEventTypes.et_KEY_DOWN event and the pVal.CharPressed to catch the key pressed.  I do not know if you can actually catch a combination of the two and/or the key code for the CTRL button.
    On the other hand, when you press the CTRL + V combination, you are executing the Paste menu event, and that you can capture on the SBO_Application_MenuEvent rutine with the statement ...
    Select Case pVal.MenuUID
        Case "773" 'Code of the Paste command under the Edit menu.
    End Select

  • 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?

Maybe you are looking for

  • Db tuning in standard edition

    Dear all, Recently we migrated our database from 10g rac to 11gr2 rac in solaris. 11g database is comparatively slow , though we've allocated enough resources (sga..).For example. we ran a sample program and compare the trace files of both the enviro

  • AC adapter for 5G iPOD

    Is the Apple's power adapter (AC to USB) compatible with the 5G? I have used a 3rd party power adapter with the iPOD mini, and it worked well. Now I have a 5G, and it cannot charge the 5G as the mini. Hate to spend another $30 for the Apple power ada

  • View criteria and LOVs

    Hi I am very new to ADF and just getting started on view criteria and LOVs. Is it possible to create a query panel and table such that in the search section the fields have drop down boxes or select many shuttles ? Right now what ever criteria i give

  • E-sourcing 7 - on premise deployment?

    Dear All, I have some questions for your e-sourcing/CLM experts: - Can the current lversion of e-Sourciing and CLM be deployed on-premise? - Is standard integration with SRM 7.0 and ECC 6.0 provided with the current version of e-sourcing? Thanks, She

  • Twitter is not working

    Thanks admin,I now have the old version of facebook back and its working,but for the twitter,its still not working,hope I can get this working too?????get back to me asap