Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 03.03.2011, 02:39
fljot вне форума Посмотреть профиль Отправить личное сообщение для fljot Найти все сообщения от fljot
  № 1  
Ответить с цитированием
fljot

блогер
Регистрация: Jul 2007
Сообщений: 940
Записей в блоге: 3
По умолчанию Координаты мыши в событиях MouseEvent.MOUSE_MOVE и MouseEvent.MOUSE_UP

Что-то я совсем в смятении.
При событии MOUSE_UP координаты иногда не такие, какие при последнем MOUSE_MOVE, но как при предыдущем MOUSE_MOVE. Например:
mouseMove: event fields: 314 265
mouseMove: stage fields: 314 265
mouseMove: event fields: 283 240
mouseMove: stage fields: 283 240
mouseUp: event fields: 314 265
mouseUp: stage fields: 314 265

В обоих плеерах, но в дебаговом как будто чаще. Сперва грешил на capture фазу, но и без неё тоже проскакивает. wtf?

Код AS3:
package
{
    import flash.display.Graphics;
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.events.MouseEvent;
    import flash.text.TextField;
 
 
    /**
     * @author Pavel fljot
     */
    public class MouseEventsTest extends Sprite
    {
        private var s:Sprite;
        private var textField:TextField;
 
 
        public function MouseEventsTest()
        {
            super();
 
            s = new Sprite();
            s.addEventListener(MouseEvent.MOUSE_DOWN, s_mouseDownHandler);
            addChild(s);
 
            textField = new TextField();
            textField.width = 500;
            textField.height = 200;
            textField.multiline = true;
            textField.mouseEnabled = false;
            addChild(textField);
 
            stage.addEventListener(Event.RESIZE, stage_resizeHandler);
            stage_resizeHandler();
        }
 
 
        private function log(...args):void
        {
            var str:String = args.join(" ");
            trace(str);
            textField.appendText("\n" + str);
            textField.scrollV = textField.numLines;
        }
 
 
        private function s_mouseDownHandler(event:MouseEvent):void
        {
            log("mouseDown");
            stage.addEventListener(MouseEvent.MOUSE_MOVE, stage_mouseMoveHandler, true);
            stage.addEventListener(MouseEvent.MOUSE_UP, stage_mouseUpHandler, true);
        }
 
 
        private function stage_mouseMoveHandler(event:MouseEvent):void
        {
            log("mouseMove: event fields:", event.stageX, event.stageY);
            log("mouseMove: stage fields:", stage.mouseX, stage.mouseY);
        }
 
 
        private function stage_mouseUpHandler(event:MouseEvent):void
        {
            stage.removeEventListener(MouseEvent.MOUSE_MOVE, stage_mouseMoveHandler, true);
            stage.removeEventListener(MouseEvent.MOUSE_UP, stage_mouseUpHandler, true);
            log("mouseUp: event fields:", event.stageX, event.stageY);
            log("mouseUp: stage fields:", stage.mouseX, stage.mouseY);
        }
 
 
        private function stage_resizeHandler(event:Event = null):void
        {
            var g:Graphics = s.graphics;
            g.clear();
            g.beginFill(0x000000, 0.1);
            g.drawRect(x, y, stage.stageWidth, stage.stageHeight);
            g.endFill();
        }
    }
}
upd: Да, OS X, FP 10.2.152.33 standalone. В релизном плагине в хроме 10.2.154.13 такого вроде не получается.
Вложения
Тип файла: zip MouseEventsTest.swf.zip (1.4 Кб, 40 просмотров)


Последний раз редактировалось fljot; 03.03.2011 в 02:45.
Создать новую тему Ответ Часовой пояс GMT +4, время: 12:07.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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