PDA

Просмотр полной версии : скроллинг. как реализовать?


Felicast
06.07.2008, 19:25
нужно организовать класс скролла. (при движении одного мувика (scroller), второй(mainHold) двигался в другом направлении)
не знаю на какой Event повесить изменение координат скроллируемого(mainHolder) мувика. пока вешаю на MOUSE_MOVE, но когда мышь находится не над скроллом(scroller), это событие не срабатывает :(
вот код:

public class Scrolling extends MovieClip
{
private var mainHold:MainHold;
private var mDown:Boolean;
public function Scrolling()
{
mDown = false;
mainHold = (parent.getChildByName("mainHold") as MainHold);
scroller.addEventListener(MouseEvent.MOUSE_DOWN, scrollerMouseDownHandler);
scroller.addEventListener(MouseEvent.MOUSE_UP, scrollerMouseUpHandler);
scroller.addEventListener(MouseEvent.MOUSE_MOVE, scrollerMouseMoveHandler);
}
private function scrollerMouseDownHandler(event:MouseEvent):void
{
mDown = true;
scroller.startDrag(false, new Rectangle(scroller.x, 0, 0, 550 - scroller.height));
}
private function scrollerMouseMoveHandler(event:MouseEvent):void
{
if (mDown)
{
mainHold.y = -(scroller.y * mainHold.height) / this.height;
}
}
public function scrollerMouseUpHandler(event:MouseEvent):void
{
mDown = false;
scroller.stopDrag();
}
}


если есть более разумная идея, с удовольствием выслушаю

__ant
06.07.2008, 20:19
Изменяй координаты mainHold по событию enterFrame


scroller.startDrag(false, new Rectangle(scroller.x, 0, 0, 550 - scroller.height));
scroller.addEventListener(Event.ENTER_FRAME, frameHandler);

...

scroller.stopDrag();
scroller.removeEventListener(Event.ENTER_FRAME, frameHandler);

...

private function frameHandler(e:Event):void {
mainHold.y = -(scroller.y * mainHold.height) / this.height;

}

Felicast
07.07.2008, 12:49
спасибо. я, собственно, так и сделал

inozemcev
12.03.2010, 19:49
по - моему не учитываются случаи когда мышь покидает зону захвата, возвращается в нее и т п.

Alex Lexcuk
12.03.2010, 20:45
Посмотрите на горизонтальный слайдер (делал давно) и можно вертикальный поставить и скинить можно мувиком.
http://murmadillo.tut.su/m/sv-gor-sl.zip