Событие колеса мыши в Adobe Air для Android (попытка написать Adobe Native Extension)

Я пытаюсь написать собственное расширение Adobe Air, чтобы ловить колесико мыши на Android.

Android получает событие колеса мыши, когда я тестирую его как собственное приложение.

Но когда я пытаюсь упаковать этот код как собственное расширение, я не получаю событие.

Я следую этому руководству.

Могу ли я добавить слушателя к текущему представлению?

Я пропустил что-то еще?

Есть ли расширение колеса мыши для колесика мыши в Android?

    public class OpenAppANE extends Activity implements FREExtension, OnTouchListener {
        public void startMouseEvent()
        {
            LinearLayout touchLayout = new LinearLayout(this);
          // set layout width 30 px and height is equal to full screen
          LayoutParams lp = new LayoutParams(30, LayoutParams.MATCH_PARENT);
          touchLayout.setLayoutParams(lp);
          // set color if you want layout visible on screen
        //  touchLayout.setBackgroundColor(Color.CYAN);
          // set on touch listener
          touchLayout.setOnTouchListener(this);

          // fetch window manager object
          WindowManager mWindowManager = (WindowManager) getSystemService(WINDOW_SERVICE);

          // set layout parameter of window manager

          WindowManager.LayoutParams mParams = new WindowManager.LayoutParams(30,
                    // width of layout 30 px
                  WindowManager.LayoutParams.MATCH_PARENT, // height is equal to full screen
                        WindowManager.LayoutParams.TYPE_PHONE, // Type Phone, These are non-application windows providing user interaction with the phone (in particular incoming calls).
                        WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, // this window won't ever get key input focus 
                        PixelFormat.TRANSLUCENT);     
                mParams.gravity = Gravity.LEFT | Gravity.TOP;  
                Log.i("TAG", "add View");

              mWindowManager.addView(touchLayout, mParams);

        }
            @Override
            public boolean onGenericMotionEvent(MotionEvent event) {
             Toast.makeText(appContext, "inside onGenericMotionEvent" , Toast.LENGTH_SHORT ).show();
    }
}

person Shvilam    schedule 27.02.2014    source источник
comment
Я думаю, что ключом к решению этой проблемы является получение представления о том, что держите флеш-плеер.   -  person Shvilam    schedule 02.03.2014
comment
когда я тестирую его не как родное приложение. об этом не как нативное приложение или оно должно быть не как нативное расширение? я принимаю, как будто это НЕ КАК нативное расширение (или КАК нативное приложение).. так что это может быть по многим причинам. возможно, ваша упаковка ANE выходит из строя. чтобы проверить это, пожалуйста, создайте простой hello world ANE ... или вы добавили эту службу, которую вы создали в ane, в свой манифест air/android?. Также я уверен, что вы используете Java-библиотеку FlashRuntimeExtension, иначе как воздух мог бы общаться с Android. поэтому вам нужно быть более ясным, чтобы получить ответ   -  person Ömer Erden    schedule 05.03.2014
comment
@Bolzano Я создал много нативных расширений. И я перестал быть уверен, что это не то же самое, что не использовать FlashRuntimeExtension. Я создал тестовую функцию, чтобы убедиться, что это расширение работает? Спасибо, если у вас есть идея, это будет здорово   -  person Shvilam    schedule 05.03.2014
comment
хорошо, я только что сделал предположение. потому что проблема, которую вы указали, заключалась в том, что она работает, когда она родная, но не работает. журнала нет. нет кода. как мы могли знать недостающие части.   -  person Ömer Erden    schedule 06.03.2014
comment
Еще раз спасибо @Bolzano. Я добавил код, надеюсь, он поможет.   -  person Shvilam    schedule 06.03.2014


Ответы (1)


Для Air есть прослушиватель MOUSE_WHEEL.

я бы просто использовал

stage.addEventListener(MouseEvent.MOUSE_WHEEL, onMouseWheelEvent);

для прослушивания события колесика мыши. должно работать нормально.

ВСЕ события мыши должны работать на Android Native.

также используйте «дельта», чтобы установить количество строк, которое представляет каждая выемка на колесе мыши. проверьте: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/InteractiveObject.html#event:mouseWheel также

person Sean Carroll    schedule 02.05.2016