|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Nov 2016
Сообщений: 4
|
динамические текстовые поля, зависящие друг от друга
Добрый вечер. Помогите, пожалуйста) Очень долго пытаюсь понять, что не так. не удивлюсь, если все не так. У меня 3 текстовых поля t1, t2, t3. При клике на каждое из них загорается циферка. если на сцене нет цифер (все поля пустые) - тогда на поле, на котором щелкнули, загорается единичка. если единичка уже занята, на след. поле загорается двойка и т.д. Если щелкнуть по цифре, то она исчезает. ока написала только для t1, но и то не работает. Ужас какой-то.
import flash.display.DisplayObject; import flash.events.Event; var X:int=new int(); t1.addEventListener(MouseEvent.MOUSE_DOWN, clickT1); function clickT1(e:Event):void { if( isBiggestX() ) { t1.text = String(X+1) } } this.addEventListener(Event.ENTER_FRAME, isBiggestX); function isBiggestX():Boolean { for (var i:int=0; i < stage.numChildren; i++) { this.getChildAt(i); if (this.getChildAt is TextField) { this.addEventListener(Event.ENTER_FRAME, textX); function textX(e:Event):void { if (this.getChildAt.text == X); { return true(); } else { return false(); } } } } } |
|
|||||
Регистрация: Apr 2018
Сообщений: 42
|
ulia0208, во-первых, твой код совершенно не читаем, так как нет форматирования. Когда пишешь сообщение, сверху есть кнопочка AS3. Выдели код и нажми на эту кнопочку, чтобы сохранить форматирование.
Во-вторых, Цитата:
В-третьих, Цитата:
|
|
|||||
Уля, жесть. Пытаешься попасть пальцем в небо, перемешивая фрагменты недокода в рандомном порядке)) но так не получится)) Почитай книжечки. Пожалуйста.
И, божечки, неужели так сложно оформить код в сообщении в теги ?? Ладно, попробуем снова и по порядку. Разберем твою задачу, озвученную в теме. Дано: Цитата:
- Текстовые поля t1, t2 и t3. - переменную X (та самая "циферка"), которая по умолчанию равна 0. - при клике на одно из текстовых полей происходит следующее: 1. если поле пустое, то вписываем в него X+1. 2. если поле не пустое, то оно становится пустым. Также, если его значение было = X, то делаем X-1 Вроде как все, исходя из тобой написанного. Ок. Создаем переменную, а которой будем хранить "циферку". Она у нас целое. далее, слушаем клики по текстовым полям в одной функции t1.addEventListener(MouseEvent.CLICK, textFieldHandler); t2.addEventListener(MouseEvent.CLICK, textFieldHandler); t3.addEventListener(MouseEvent.CLICK, textFieldHandler); function textFieldHandler(event:MouseEvent):void { //достанем из события event target - поле, на которое целкнули //и положим его в отдельную переменную, чтобы было удобней работать и читабельней var tf:TextField = event.target as TextField; //если текстовое поле, покоторому кликнули пустое, то if(tf.text == '') { //выражение ++ перед переменной сначала прибавляет 1 к X, а потом созвращает его значение //то есть, если X был = 0, то программа сначала прибавит к нему 1, после чего //вернет уже результат сложения. Таким образом, если Х был равен 0, то в текстфилд //по которому мы кликнули, запишется 1. И Х уже будет равен 1, так что в следующий раз, //когда мы кликнем по другому текстовому полю, произойдет все тоже самое, но уже с Х равняющимся 1, //и во второе поле запишется уже 2. tf.text = ++X; } else //если поле не пустое, то есть "если кликнули по циферке" { //сотрим: если значение поля равно Х, то есть самое большое число из имеющихся, то авчитаем из Х 1. //кстати, выражение -- после переменно сначала возвращает её значение, а уже потом изменяет её на -1. //так что, важно помнить разницу между ++X и X++ if(tf.text == String(X)) X--; //ну и все, присваиваем этому полю пустую строку tf.text = ''; } } import flash.text.TextField; import flash.events.MouseEvent; var X:int = 0; t1.addEventListener(MouseEvent.CLICK, textFieldHandler); t2.addEventListener(MouseEvent.CLICK, textFieldHandler); t3.addEventListener(MouseEvent.CLICK, textFieldHandler); function textFieldHandler(event:MouseEvent):void { var tf:TextField = event.target as TextField; if(tf.text == '') { tf.text = ++X; } else { if(tf.text == String(X)) X--; tf.text = ''; } }
__________________
while(live()) { hope(); } Последний раз редактировалось ZergMaster; 29.06.2018 в 10:39. |
Часовой пояс GMT +4, время: 18:07. |
|
« Предыдущая тема | Следующая тема » |
|
|