простой слайдер as3 - PullRequest
       2

простой слайдер as3

0 голосов
/ 21 января 2011

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

package  {
import flash.display.MovieClip;
import flash.events.MouseEvent;
import flash.geom.Rectangle; public class SliderH extends MovieClip {
    public function SliderH() {
        trace("creation");
        addEventListener(MouseEvent.MOUSE_DOWN, mousedown);
        addEventListener(MouseEvent.MOUSE_UP, mouseup);
        this.buttonMode = true;
    }
    private function mousedown(e:MouseEvent):void {
        trace("begin");
        var rect:Rectangle = new Rectangle(-this.parent.width/2,0,this.parent.width,0);
        startDrag(false , rect);

    }
    private function mouseup(e:MouseEvent):void {
        stopDrag();
        trace(this.x);
    }       
}

}

Ответы [ 2 ]

2 голосов
/ 21 января 2011

Несмотря на то, что я все время занимаюсь чем-то и учусь, у Кита Питерса есть отличная простая библиотека, которую довольно легко настроить.(если вы пытаетесь создать простые элементы управления)

http://www.bit -101.com / blog /? p = 2979

, но помимо этого вы должны добавитьсобытие ROLL_OUT flash.events.MouseEvent.ROLL_OUT

addEventListener(MouseEvent.ROLL_OUT, mouseup);
0 голосов
/ 21 января 2011

вы хотите предотвратить перемещение ползунка, если ваша мышь слишком далеко,

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

package  {
import flash.display.MovieClip;
import flash.events.MouseEvent;
import flash.geom.Rectangle; public class SliderH extends MovieClip {
    public function SliderH() {
        trace("creation");
        addEventListener(MouseEvent.MOUSE_DOWN, mousedown);
        addEventListener(MouseEvent.MOUSE_UP, mouseup);
        addEventListener(MouseEvent.MOUSE_MOVE,mousemove);
        this.buttonMode = true;
    }
    private function mousedown(e:MouseEvent):void {
        trace("begin");
        var rect:Rectangle = new Rectangle(-this.parent.width/2,0,this.parent.width,0);
        startDrag(false , rect);

    }
    private function mouseup(e:MouseEvent):void {
        stopDrag();
        trace(this.x);
    }
    private function mousemove(e:MouseEvent):void{
        if (Math.abs(this.x)>this.parent.width/2){
            stopDrag();
        }
    }       
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...