Вопрос по actionscript 3.0

anton831
На сайте с 25.05.2011
Offline
71
766

Добрый день!

Подскажите пожалуйста, почему не работает метод .setSelection(x,y)?

Дело в том, что когда я запускаю его через слушатель MouseEvent.CLICK, все нормально работает,

Но когда я пытаюсь запустить его через FocusEvent.FOCUS_IN - ничего не работает.

Если что - используются компоненты textInput.

Вот этот код - абсолютно рабочий:

l11.addEventListener (MouseEvent.CLICK, selectl11);

function selectl11 (event:Event):void {
if (Number(l11.text) == 0) {
l11.setSelection(0, 9);
}
}

А вот эти 2 - ну никак не хотят выделять значения в текстовых полях??

Помогите, не понимаю что тут не так?

d11.addEventListener (KeyboardEvent.KEY_DOWN, uu);

function uu (event:KeyboardEvent):void {

if(event.keyCode == 40) {
l11.setFocus();
l11.setSelection(0, 9);
};
}

d11.addEventListener(FocusEvent.FOCUS_IN, selectd11);

function selectd11 (event:FocusEvent):void {
if (Number(d11.text) == 0) {
d11.setSelection(0, 9);
trace('jkjk');
}
}

Так же хочу отметить, что trace('jkjk'); - во втором не исправном коде, выводиться, то есть событие FOCUS_IN - отправляется.

ДП
На сайте с 23.11.2009
Offline
203
#1
Jekyll
На сайте с 04.05.2009
Offline
136
#2

А если попробовать так (для второго):

Вместо l11.setFocus();

l11.stage.focus = l11;
anton831
На сайте с 25.05.2011
Offline
71
#3
Jekyll:
А если попробовать так (для второго):
Вместо l11.setFocus();
l11.stage.focus = l11;

Эффект такой же как и от l11.setFocus();

Фокус то передается на объект, проблема в том, что при этом не работает

l11.setSelection(0, 9);
То есть курсор перескакивает на textimput - "l11", но дефолтный текст при этом не выделяется.

Хотя при условии, что это происходит по событию клик мыши - все работает.

Блин, целый день с этим парюсь! Видел такую прогу, правда на as2 - там при переходе с одного окошка на другое, все прекрасно работает - значит можно как то сделать.....

Jekyll
На сайте с 04.05.2009
Offline
136
#4

А если перед этой строкой добавить:

l11.stage.focus = l11;

l11.selectable = true;
anton831
На сайте с 25.05.2011
Offline
71
#5
Jekyll:
А если перед этой строкой добавить:
l11.stage.focus = l11;

l11.selectable = true;

Ошибка компиляции,

Свойство selectable используется применительно к TextField, а у меня используются компоненты TextInput.

anton831 добавил 17.11.2011 в 19:59

Причем если просто написать в кадре

       l11.setFocus(); 

l11.setSelection(0, 9);

Все прекрасно выделяется.

А как только вставляю в функцию - фиг.

Блин, уже мозги кипят.

ДП
На сайте с 23.11.2009
Offline
203
#6

Может у вас после события выделение снимается, а вы визуально этого не видете. Вы можете получить какие-то параметры выделения? Текст или с какого по какой символы? Если да - попробуйте сразу после setSelection() получить параметры выделения.

anton831
На сайте с 25.05.2011
Offline
71
#7
Дикий пионер:
Может у вас после события выделение снимается, а вы визуально этого не видете. Вы можете получить какие-то параметры выделения? Текст или с какого по какой символы? Если да - попробуйте сразу после setSelection() получить параметры выделения.

Ну да, оно сбрасывается.

Вопрос только почему оно сбрасывается и как сделать чтоб не сбрасывалось.)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий