2015-02-03 5 views
0

Я хотел бы создать этот точный пример: http://www.nytimes.com/2008/12/28/nyregion/18thennow.html?_r=2& однако есть перетаскивание по оси y вместо x. Я работал с некоторым базовым кодом, но задавался вопросом, как его заблокировать?AS3 Перетаскиваемый слой/маска по оси y

myImage.mask = myMask; 
stage.addEventListener(MouseEvent.MOUSE_DOWN, fMouseDown); 
stage.addEventListener(MouseEvent.CLICK, fMouseUp); 
function fMouseDown(e:MouseEvent):void { 
myMask.startDrag(); 
} 
function fMouseUp(e:MouseEvent):void { 
myMask.stopDrag(); 
} 

Это не совсем то, что мне нужно, хотя любая помощь? Заранее спасибо!

ответ

0

The documentation of startDrag() рассказывает о втором необязательном параметре bounds:

границы: прямоугольник (по умолчанию = NULL) - значение по отношению к координатам родительского спрайта, задающего ограничение прямоугольника для Sprite.

Ось y представляет собой прямоугольник с нулевой шириной.

Чтобы перетащить как ручку, так и маску, поместите оба в контейнер Sprite объект. Это должен быть объект, который вы называете startDrag и stopDrag. Но поскольку вы только хотите инициировать перетаскивание, если дескриптор был нажат (а не вся маска), зарегистрируйте прослушиватель для события мыши на обработчике.

+0

Можете ли вы показать мне немного больше примера? – user2561920

+0

В ссылке есть пример, пожалуйста, прочитайте его. – null

+0

Я действительно прочитал его, эти форумы: smh .. Если бы я не смутился, я бы не стал просить больше примеров. Может ли этот прямоугольник быть установленным только как граница сцены, или я бы просто ввел те же значения, что и размер сцены. Я вижу, как установлен граничный ящик, но я не вижу, как он применяется к маске. Вы действительно посмотрели на пример, который я опубликовал, о том, что я пытаюсь сделать? Просто любопытно - спасибо за любую помощь .... – user2561920

Смежные вопросы