AS3 - Перетаскивание объектов в области прокрутки - PullRequest
0 голосов
/ 18 апреля 2011

Я использую компонент Flash ScrollPane для хранения вертикального стека видеоклипов.Я реализовал функциональность, позволяющую пользователю перетаскивать эти мувиклипы вверх и вниз в пределах вертикального стека, чтобы они могли изменить порядок.Моя проблема возникает, когда пользователь перетаскивает фрагмент ролика к нижней части области прокрутки, и я хочу, чтобы содержимое прокручивалось, чтобы пользователь мог перетащить фрагмент перетаскиваемого фрагмента ниже элементов, которые не помещаются в видимую область области прокрутки.

Я попытался автоматически прокрутить панель, увеличивая verticalScrollPosition, когда перетаскиваемый фрагмент ролика находится внизу панели, но это не работает, поскольку перетаскиваемый фрагмент ролика является частью содержимого области прокрутки и перемещаетсяс остальным содержанием.Перетаскиваемый фрагмент ролика перемещается вверх вместе с остальным содержимым и больше не находится под курсором пользователя:

        private function onDragged (e : Event) : void {
          var draggedY : Number = ComponentHolder(e.currentTarget).y;           

          if(draggedY > this.height - 30 && draggedY > this.height - 25){
            verticalScrollPosition ++;
            //e.currentTarget.y ++;
        }   

Возможно, это не лучшее описание моей проблемы, но, надеюсь, вы поняли идею.Если вам нужны какие-либо разъяснения, пожалуйста, дайте мне знать.Я думаю, что мне, возможно, нужно исключить перетаскиваемый видеоклип из «прокручиваемого» содержимого панели, но я не уверен, как это сделать.

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 18 апреля 2011

Если я вас правильно понял, я могу посоветовать вам два решения:

  1. Прокрутите панель, когда колесо мыши вращается, вместо прокрутки, когда пользователь перетаскивает фрагмент ролика вниз.

  2. Удаление фрагмента ролика из области после его перетаскивания.

...