Форум 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.setFocus возвращает false (http://www.flasher.ru/forum/showthread.php?t=138450)

AzagThoth 08.04.2010 09:52

Selection.setFocus возвращает false
 
Здравствуйте.
Цитата:

Если метод getFocus() покажет, что нужное поле не обладает фокусом ввода, его необходимо сделать выделенным программно. Для этого предназначен метод Selection.setFocus(object), где object — объект (это может быть текстовое поле, кнопка или клип), на который нужно навести фокус. Если задача методом Selection.setFocus() была решена успешно, он возвращает true. Иначе возвращается false.
Теперь мой код:
Код AS1/AS2:

trace(Selection.getFocus());
trace(Selection.setFocus(test));//test динамическое текстовое поле на сцене
trace(Selection.getFocus());

А вот что вижу в оутпут:
null
false
_level0.test
Кто нибудь может объяснить почему false!?

in4core 08.04.2010 13:03

Ну потому что оно изначально не установлено на test поле вот и false.

AzagThoth 08.04.2010 16:31

Ничего подобного, Вы не правы.
Код AS1/AS2:

trace(Selection.getFocus());
trace(Selection.setFocus(test));//test динамическое текстовое поле на сцене
trace(Selection.setFocus(test));
trace(Selection.getFocus());

В оутпут:
null
false
false
_level0.test
Вот так вот.

mooncar 08.04.2010 21:31

Любопытно.
Действительно почему?
Ведь
Код:

Returns
Boolean - A Boolean value; true if the focus attempt is successful, false if it fails.


lexa2000lexa 09.04.2010 11:06

незнаю почему так, но сталкивался с этим и поборол вот так
Код AS1/AS2:

trace(Selection.getFocus());
setTimeout(function (){Selection.setFocus(test)},100);//test динамическое текстовое поле на сцене
trace(Selection.setFocus(test));
setTimeout(function (){trace(Selection.getFocus())},150)


in4core 09.04.2010 13:08

Ну так вот! Человек ставит интервалы доказывая мою точку зрения, что он не определен заранее а когда вы его определяете видимо встроен счетчик, в мс , через промежуток которого и выводится новое значение после установки старого. ТОка вот в хелпе об этом не написано

Hauts 09.04.2010 13:21

Возможно интервал зависит от фпс флэшки.

lexa2000lexa 09.04.2010 13:24

ну вот какая штука даже если поставить нулевые интервалы ,
Код AS1/AS2:

trace(Selection.getFocus());
setTimeout(function (){Selection.setFocus(test)},0);//test динамическое текстовое поле на сцене
trace(Selection.setFocus(test));
setTimeout(function (){trace(Selection.getFocus())},0)

тоже работает, это попахивает глюком

in4core 09.04.2010 13:41

Тогда возможно Haunts прав. а может недоработка флеша. А вообще зачем это нужно?

AzagThoth 09.04.2010 16:24

Это нужно для того чтобы ПОНИМАТЬ как оно работает.


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

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