Развитие игровой вспышки
Текущее время: Ср дек 11, 2019 6:06 pm

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: Что я не так делаю с кодом
СообщениеДобавлено: Пт июл 26, 2019 3:53 am 
Не в сети

Зарегистрирован: Вт окт 12, 2010 1:24 am
Сообщений: 1322
Откуда: Saint-Petersburg
Код кнопки
Код:
package {
   import flash.display.MovieClip;
   import flash.events.Event;
   import flash.events.TouchEvent

   public class button_1 extends MovieClip {
      public var on = 0;

      public function button_1() {
         // constructor code
         this.addEventListener(TouchEvent.TOUCH_BEGIN, touchf);
         //trace("touch")
      }
      public function touchf(e: TouchEvent): void {

         if (on == 0) {
            on = 1;
            this.gotoAndStop(2);
         } else if (on == 1) {
            on = 0;
            this.gotoAndStop(1)
         }
      }
   }

}



Эта кнопка добавлена на сцену в анимейте не через эдчайлд а тупо из библиотеки. И не работает нажатие.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Что я не так делаю с кодом
СообщениеДобавлено: Ср окт 09, 2019 1:13 pm 
Не в сети

Зарегистрирован: Вт апр 01, 2014 10:34 am
Сообщений: 237
не совсем понял код, нажатие кнопки обрабатываю так buttonOption.addEventListener(Event.TRIGGERED, OnOptions);

а на Touch событие прилетает много чего и пронос курсора мыши к примеру над кнопкой, и нажатие и отпускание... но по идее в событие при нажатии тоже должно попадать, но возможно оно вызывается очень часто для этого кода, т.е. не только на нажатие

Можно подсмотреть код реализации кнопки например в кнопке бибилиотеки старлинга, я так часто делаю, от туда код для своего контрола забираю...


Вернуться наверх
 Профиль Отправить e-mail  
 
 Заголовок сообщения: Re: Что я не так делаю с кодом
СообщениеДобавлено: Ср окт 09, 2019 1:17 pm 
Не в сети

Зарегистрирован: Вт апр 01, 2014 10:34 am
Сообщений: 237
подозреваю что события TOUCH_BEGAN для movieClip вообще не стреляет.

попробуйте addEventListener(TouchEvent.TOUCH, onTouch);

а в событии проверить что там происходит и потом уже принять решение что делать, это примерный код из кнопки
Код:




private function onTouch(event:TouchEvent):void
        {
            Mouse.cursor = (mUseHandCursor && mEnabled && event.interactsWith(this)) ?
                MouseCursor.BUTTON : MouseCursor.AUTO;
           
            var touch:Touch = event.getTouch(this);
            var isWithinBounds:Boolean;

            if (!mEnabled)
            {
                return;
            }
            else if (touch == null)
            {
                state = ButtonState.UP;
            }
            else if (touch.phase == TouchPhase.HOVER)
            {
                state = ButtonState.OVER;
            }
            else if (touch.phase == TouchPhase.BEGAN && mState != ButtonState.DOWN)
            {
                mTriggerBounds = getBounds(stage, mTriggerBounds);
                mTriggerBounds.inflate(MAX_DRAG_DIST, MAX_DRAG_DIST);

                state = ButtonState.DOWN;
            }
            else if (touch.phase == TouchPhase.MOVED)
            {
                isWithinBounds = mTriggerBounds.contains(touch.globalX, touch.globalY);

                if (mState == ButtonState.DOWN && !isWithinBounds)
                {
                    // reset button when finger is moved too far away ...
                    state = ButtonState.UP;
                }
                else if (mState == ButtonState.UP && isWithinBounds)
                {
                    // ... and reactivate when the finger moves back into the bounds.
                    state = ButtonState.DOWN;
                }
            }
            else if (touch.phase == TouchPhase.ENDED && mState == ButtonState.DOWN)
            {
                state = ButtonState.UP;
                if (!touch.cancelled)
            {
               isSelected = !isSelected;
               
               dispatchEventWith(Event.CHANGE, true);
            }
            }
        }
       



Вернуться наверх
 Профиль Отправить e-mail  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB