Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Замена ENTER_FRAME (http://www.flasher.ru/forum/showthread.php?t=133256)

MrYeti 30.11.2009 23:18

Замена ENTER_FRAME
 
Как можно заменить класс ENTER_FRAME, чтобы не зависеть от таймлайна? Извиняйте за глупый вопрос=). Просто делал курсор, а он идет с мелкими тормозами (не тормозит, если выставить 120 к/c, но это много).

Zik. 30.11.2009 23:20

Для курсора используйте MOUSE_MOVE

MrYeti 30.11.2009 23:30

Код AS3:

Mouse.hide();
function cursor (MouseEvent){
        mc.x=mouseX;
        mc.y=mouseY;
}
addEventListener(MouseEvent.MOUSE_MOVE, cursor);

Написал так, но не получилось...

В AS 2.0/1.0 делал так:
Код AS1/AS2:

onClipEvent (load) {
        this._x=_parent._xmouse;
        this._y=_parent._ymouse;
        Mouse.hide();
}
onClipEvent (mouseMove){
        this._x=_parent._xmouse;
        this._y=_parent._ymouse;
        updateAfterEvent();
        Mouse.hide();
}

Добавлено через 18 минут
Код AS3:

stage.addEventListener(MouseEvent.MOUSE_MOVE,redrawCursor);
Mouse.hide();
function redrawCursor(event:MouseEvent):void
{
cursor.x = event.stageX;
cursor.y = event.stageY;
}

Переписал, но все равно получается, что зависит от количества кадров в секунду. Тк выставив 120 не тормозит...

Zik. 30.11.2009 23:54

ну хорошо, ставьте таймер

MrYeti 01.12.2009 00:31

Таймер - не рационально.
Но вспомнил про updateAfterFrame. Так что вот так работает как надо:
Код AS3:

import flash.events.*;
Mouse.hide();
function test (MouseEvent){
        cursor.x=mouseX;
        cursor.y=mouseY;
        MouseEvent.updateAfterEvent();
}
stage.addEventListener(MouseEvent.MOUSE_MOVE, test);


Gaen 01.12.2009 00:31

пропишите в as3 updateAfterEvent

MrYeti 01.12.2009 00:37

Гайкер спасибо за подсказку), где же Вы были час назад :)... Одновременно с Вашим сообщением уже вспомнил :)...

etc 01.12.2009 07:35

Цитата:

Сообщение от MrYeti (Сообщение 869382)
Таймер - не рационально.
Но вспомнил про updateAfterFrame. Так что вот так работает как надо:
Код AS3:

import flash.events.*;
Mouse.hide();
function test (MouseEvent){
        cursor.x=mouseX;
        cursor.y=mouseY;
        MouseEvent.updateAfterEvent();
}
stage.addEventListener(MouseEvent.MOUSE_MOVE, test);


За написание имени аргумента, схожим с именем класса, нужно отрывать руки по пояс.

dimarik 01.12.2009 22:09

Цитата:

Как можно заменить класс ENTER_FRAME
Ну, понятно, за что нужно отрывать руки =) Класс ENTER_FRAME. аха.

ps. ENTER_FRAME - статик константа класса Event.


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

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