Nano Hash - криптовалюты, майнинг, программирование

щелкните коснитесь или коснитесь начала и перетащите объект одновременно с3

я создаю панель кнопок, которую можно перетаскивать, однако, когда я поднимаю палец после перетаскивания кнопок, кнопка нажимается, я хотел бы отменить щелчок / касание при перетаскивании кнопок, какие-либо предложения? Спасибо


Ответы:


1

Вам нужно либо удалить/добавить своих слушателей по мере необходимости, либо иметь свойство на ваших кнопках. Что-то типа:

public class DragButton extends Sprite
{
    public var isDragging:Boolean = false;

    public function DragButton()
    {
        // add our listeners
        this.addEventListener( MouseEvent.MOUSE_DOWN, this._onMouseDown );
        this.addEventListener( MouseEvent.MOUSE_UP, this._onMouseUp );
        this.addEventListener( MouseEvent.CLICK, this._onMouseClick );
    }

    private function _onMouseDown( e:MouseEvent ):void
    {
        // add our move listener for dragging
        this.addEventListener( MouseEvent.MOUSE_MOVE, this._onMouseMove );
    }

    private function _onMouseUp( e:MouseEvent ):void
    {
        // remove our dragging listener
        this.removeEventListener( MouseEvent.MOUSE_MOVE, this._onMouseMove );
    }

    private function _onMouseMove( e:MouseEvent ):void
    {
        // drag us
        this.x = e.stageX;
        this.y = e.stageY;
        this.isDragging = true;
    }

    private function _onMouseClick( e:MouseEvent ):void
    {
        // if we're dragging, ignore
        if( this.isDragging )
        {
            this.isDragging = false;
            return;
        }

        // do our click stuff
    }
}
18.09.2013
  • ммм, я думал об этом, я был уверен, что есть что-то лучшее, что можно сделать 19.09.2013
  • В AS3 порядок событий всегда MOUSE_DOWN, MOUSE_UP, затем CLICK. Если вы не хотите, чтобы CLICK после того, как вы перетащили его мышью вверх, вам нужно либо удалить прослушиватель кликов и повторно добавить его позже, либо реализовать что-то подобное выше, чтобы игнорировать его. Вы также можете попробовать установить mouseEnabled на false в событии MOUSE_UP, но опять же, вам нужно будет сбросить его позже. 19.09.2013
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..