|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Сделать текстовое поле нередактируемым
Здравствуйте. Подскажите пожалуйста как можно сделать текстовое поле TextField, добавленное на этапе разработки, нередактируемым. При помощи AS3 кода.
Вот так к сожалению не получается: emailOnly_ch - компонент CheckBox его статус хочу использовать для установки режимов на разрешение и запрет редактирования
__________________
Играй. Это жизнь. Всё повторяется. Играй. |
|
|||||
textfield.selectable = false
|
|
|||||
Регистрация: Jul 2007
Сообщений: 393
|
Отменить действие по умолчанию.
|
|
|||||
Ой, не заметил. Странно, кстати, что selectable не работает и указывание типа поля тоже.
Добавлено через 7 минут Создать листенер для текстового поля, имеет ввиду Krusty. К примеру так: public class Main extends Sprite { internal var ableToEdit:Boolean = new Boolean(false); public function Main():void { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); } private function init(e:Event = null):void { var woot:TextField = new TextField; woot.border = true; woot.type = TextFieldType.INPUT; addChild(woot); woot.addEventListener(TextEvent.TEXT_INPUT, checkIfAble) } private function checkIfAble(e:TextEvent):void { if (!ableToEdit) { e.preventDefault(); } } } В нашем случае, при попытке ввода в текстовое поле, если переменная ableToEdit равна false - ввести ничего нельзя. Последний раз редактировалось MINASTIS; 21.08.2012 в 21:45. |
|
|||||
У меня Ваш код работает, смотрите что Вы присваиваете.
package { import flash.display.Sprite; import flash.text.TextField; import flash.text.TextFieldType; public class Main extends Sprite { public function Main():void { var emailOnly_ch:Object; var login_txt:TextField; // Эмулируем окружение emailOnly_ch = { }; emailOnly_ch.selected = true; login_txt = new TextField(); login_txt.width = 200; addChild(login_txt); login_txt.text = "emailOnly_ch.selected = true"; // Проверяем код login_txt.selectable = !emailOnly_ch.selected; if(emailOnly_ch.selected){ login_txt.type = TextFieldType.DYNAMIC; } else { login_txt.type = TextFieldType.INPUT; } // Эмулируем окружение emailOnly_ch = { }; login_txt = new TextField(); login_txt.x = 200; login_txt.width = 200; addChild(login_txt); login_txt.text = "emailOnly_ch.selected = false"; emailOnly_ch.selected = false; // Проверяем код login_txt.selectable = !emailOnly_ch.selected; if(emailOnly_ch.selected){ login_txt.type = TextFieldType.DYNAMIC; } else { login_txt.type = TextFieldType.INPUT; } } } } |
|
|||||
У меня всё заработало. Изменил идентификатор login_txt на l_txt. Возможно где-то на сцене был двойник с таким же именем.
Добавлено через 6 минут Ага. На сцене было пять таких дублей. Вот что делает с людьми невнимательность Спасибо всем за помощь. Расставил плюсы в репу.
__________________
Играй. Это жизнь. Всё повторяется. Играй. |
Часовой пояс GMT +4, время: 16:11. |
|
« Предыдущая тема | Следующая тема » |
Теги |
AS3 , textfield |
|
|