Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Множественный клик (http://www.flasher.ru/forum/showthread.php?t=201929)

areostar 26.06.2013 16:09

Множественный клик
 
нужно перетаскивать по сцене мувики

сделал примерно так
Код AS3:

private function subj1Down(e:MouseEvent):void
                {
                        subj1.startDrag();
                        stage.addEventListener(MouseEvent.MOUSE_MOVE, subj1Move, false, 0, true);
                }
 
                private function subj1Up(e:MouseEvent):void
                {
                        subj1.stopDrag();
                        stage.removeEventListener(MouseEvent.MOUSE_MOVE, subj1Move);
                          }                       
private function subj1Move(e:MouseEvent):void
                {
                        if(subj1.mouseY < 0 || subj1.mouseY > subj1.height ||
                          subj1.mouseX < 0 || subj1.mouseX > subj1.width)
                        {
                                subj1.stopDrag();
                                stage.removeEventListener(MouseEvent.MOUSE_MOVE, subj1Move);
                        }
                }

Но при множественном нажатии на иышку, есди они с конце концов остается нажатой Drag не всегда срабатывает. Особенно если резко двинуть мыш!

что с этим сделать можно??

MikroAcse 26.06.2013 16:39

Код AS3:

private var clicked:Boolean = false;

Код AS3:

subj1.addEventListener(MouseEvent.MOUSE_DOWN, subj1Down);
stage.addEventListener(MouseEvent.MOUSE_UP, subj1Up);

Код AS3:

                private function subj1Down(e:MouseEvent):void
                {
                        clicked = true;
                        subj1.startDrag();
                        stage.addEventListener(MouseEvent.MOUSE_MOVE, subj1Move, false, 0, true);
                }
 
                private function subj1Up(e:MouseEvent):void
                {
                        if(!clicked) return;
                        clicked = false;
                        subj1.stopDrag();
                        stage.removeEventListener(MouseEvent.MOUSE_MOVE, subj1Move);
                }                       
                private function subj1Move(e:MouseEvent):void
                {
                        if(subj1.mouseY < 0 || subj1.mouseY > subj1.height ||
                          subj1.mouseX < 0 || subj1.mouseX > subj1.width)
                        {
                                clicked = false;
                                subj1.stopDrag();
                                stage.removeEventListener(MouseEvent.MOUSE_MOVE, subj1Move);
                        }
                }


areostar 26.06.2013 16:58

не помого


Часовой пояс GMT +4, время: 06:59.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.