Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 21.04.2017, 18:28
maf вне форума Посмотреть профиль Отправить личное сообщение для maf Найти все сообщения от maf
  № 1  
Ответить с цитированием
maf

Регистрация: Apr 2017
Сообщений: 5
По умолчанию Некорректно работает цикл

Я хочу сделать так, чтобы при нажатии на кнопку, результат записывался на экран в виде небольшого текстового поля. На кадре у меня есть собственно кнопки и сам код. Кнопкам назначена функция, в которой прописан цикл. При воспроизведении клипа кнопки нажимаются, а в текстовом поле отображается только Znak 5. При этом сам цикл рабочий и при нажатии на одну любую кнопку он проходит себя полностью. Подскажите, пожалуйста, как можно исправить ситуацию? Нужен вывод каждой кнопки, а не всех сразу
Код AS3:
import flash.events.MouseEvent;
import flash.text.TextField;
stop();
zN1.addEventListener(MouseEvent.CLICK, zN1_1);
zN2.addEventListener(MouseEvent.CLICK, zN1_1);
zN3.addEventListener(MouseEvent.CLICK, zN1_1);
zN4.addEventListener(MouseEvent.CLICK, zN1_1);
zN5.addEventListener(MouseEvent.CLICK, zN1_1);
zN6.addEventListener(MouseEvent.CLICK, zN1_1);
function zN1_1(event:MouseEvent) :void{
    var txtv:TextField = new TextField();
    for(var n:int=0;n<6;){
        trace(txtv.text = "Znak " + n);
        n++;
    }
    txtv.x = 150;
    txtv.y = 150;
    txtv.width = 150;
    txtv.height = 50; 
    txtv.backgroundColor = 0xFF0000;
    txtv.textColor = 0xFF0000;
    addChild(txtv);
 
}

Старый 21.04.2017, 23:32
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 2  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Оператор "=" это присвоение. Не "добавление", заметьте, а присвоение. При этом предыдущее значение аннулируется. Соответственно, с каждым витком цикла Вы очищаете поле и присваиваете ему новый текст. Последний будет Znak 5.

Добавлено через 7 минут
Ну то есть можно например так:
Код AS3:
txtv.text += "Znak " + n + "\n";
\n это перенос строки, если что)
__________________
Reality.getBounds(this);

Старый 22.04.2017, 10:49
maf вне форума Посмотреть профиль Отправить личное сообщение для maf Найти все сообщения от maf
  № 3  
Ответить с цитированием
maf

Регистрация: Apr 2017
Сообщений: 5
Цитата:
Сообщение от Wolsh Посмотреть сообщение
Оператор "=" это присвоение. Не "добавление", заметьте, а присвоение. При этом предыдущее значение аннулируется. Соответственно, с каждым витком цикла Вы очищаете поле и присваиваете ему новый текст. Последний будет Znak 5.

Добавлено через 7 минут
Ну то есть можно например так:
Код AS3:
txtv.text += "Znak " + n + "\n";
\n это перенос строки, если что)
Действительно, спасибо большое
Вопрос решен без цикла
Код AS3:
import flash.events.MouseEvent;
import flash.text.TextField;
stop();
zN1.addEventListener(MouseEvent.CLICK, zN1_1);
zN2.addEventListener(MouseEvent.CLICK, zN2_1);
zN3.addEventListener(MouseEvent.CLICK, zN3_1);
zN4.addEventListener(MouseEvent.CLICK, zN4_1);
zN5.addEventListener(MouseEvent.CLICK, zN5_1);
zN6.addEventListener(MouseEvent.CLICK, zN6_1);
var k:int=0;
var txtv:TextField = new TextField();
txtv.x = 150;
txtv.y = 150;
txtv.width = 150;
txtv.height = 50; 
txtv.backgroundColor = 0xFF0000;
txtv.textColor = 0xFF0000;
addChild(txtv);
function zN1_1(event:MouseEvent):void{
k+=0+1;
trace(txtv.text = "Znak " + k);
}
function zN2_1(event:MouseEvent):void{
k+=0+1;
trace(txtv.text = "Znak " + k);
}
function zN3_1(event:MouseEvent):void{
k+=0+1;
trace(txtv.text = "Znak " + k);
}
function zN4_1(event:MouseEvent):void{
k+=0+1;
trace(txtv.text = "Znak " + k);
}
function zN5_1(event:MouseEvent):void{
k+=0+1;
trace(txtv.text = "Znak " + k);
}
function zN6_1(event:MouseEvent):void{
k+=0+1;
trace(txtv.text = "Znak " + k);
}

Старый 22.04.2017, 11:24
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 4  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,283
думаю стоит добавить, что в текстовых полях лучше избегать присвоений
Код AS3:
tf.text+=str;
т.к. на длиных текстах начнет лагать,лучше использовать спец.метод appendText
Код AS3:
tf.appendText(str);


Последний раз редактировалось undefined; 22.04.2017 в 12:16.
Старый 22.04.2017, 13:41
maf вне форума Посмотреть профиль Отправить личное сообщение для maf Найти все сообщения от maf
  № 5  
Ответить с цитированием
maf

Регистрация: Apr 2017
Сообщений: 5
Цитата:
Сообщение от undefined Посмотреть сообщение
думаю стоит добавить, что в текстовых полях лучше избегать присвоений
Код AS3:
tf.text+=str;
т.к. на длиных текстах начнет лагать,лучше использовать спец.метод appendText
Код AS3:
tf.appendText(str);
Спасибо, возьму на заметку

Создать новую тему Ответ Часовой пояс GMT +4, время: 21:13.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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