Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Selection... Begin.. End.. (http://www.flasher.ru/forum/showthread.php?t=103463)

Mr. Fixit 06.11.2007 03:24

Selection... Begin.. End..
 
Код:

var mL:Object = Object();
mL.onMouseMove = function () {
    beginIndex = Selection.getBeginIndex ();
    endIndex = Selection.getEndIndex ();

    trace(beginIndex);
    trace(endIndex);
    trace('----------------------\n');

    updateAfterEvent ();
    }
}
Mouse.addListener(mL);

собственно проблема вот в чем.. мы заносим каретку выделения за крайний символ наполовину, и он отображается выделеным, но класс Selection не понимает и передает неправильное значение переменной, что дает некоторые трудности.
Сверил с этим "редактором текста", тут наполовину выделяя - всеравно записывается в переменную значение..
Прошу помочь в обнаружении ошибки, и решении задачи.. ;)

kruasan 06.11.2007 04:59

Причина в том, что сначала срабатывает onMouseMove, лишь затем Selection обновляет значения индексов. Т.е. узнавать индексы надо с некоторой задержкой. Давай попробуем определять индексы не сразу, а через 0 миллисекунд :-) (почувствуйте разницу)
Код:

var mL:Object = Object();
function traceIndexes()
{
        clearInterval(mL.intervalId);
       
        beginIndex = Selection.getBeginIndex ();
        endIndex = Selection.getEndIndex ();

        trace(beginIndex);
        trace(endIndex);
        trace('----------------------\n');

        updateAfterEvent();
}

mL.onMouseMove = function ()
{
        this.intervalId = setInterval(traceIndexes,0)
}
Mouse.addListener(mL);

Теперь индексы отображаются правильно.

Кстати, в твоем коде одна лишняя фигурная скобка

Mr. Fixit 06.11.2007 10:52

спс конечно.. решить можно заменив onMouseMove на onEnterFrame


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

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