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

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

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

Регистрация: May 2009
Сообщений: 122
По умолчанию Работа с циклом for

Здравствуйте.
Подскажите пожалуйста.
Хочу, чтоб координаты для текста по оси Y брались соответственно из массива, то есть: есть 4 строки текста и для первой координата по Y = 100, для второй строки Y = 150 и т.д
Написал цикл, который должен проходить по массиву и подставлять координаты для каждой строки, но у меня получилась, какая-то фигня, - текст накладывается друг на друга, да и еще выводится каждая строчка 4 раза.
Вот картинка:
Название: text.png
Просмотров: 452

Размер: 1.8 Кб
а вот код:
Код AS3:
import flash.text.TextField;
 
var coordsArray:Array = [100, 150, 200, 250];
 
var txt1:TextField;
var txt2:TextField;
var txt3:TextField;
var txt4:TextField;
 
for(var i:int = 0; i < coordsArray.length; i++)
{
	txt1 = new TextField();
	txt1.text = "One";
	txt1.x = 100;
	txt1.y = coordsArray[i];
	addChild(txt1);
 
	txt2 = new TextField();
	txt2.text = "Two";
	txt2.x = 100;
	txt2.y = coordsArray[i];
	addChild(txt2);
 
	txt3 = new TextField();
	txt3.text = "Three";
	txt3.x = 100;
	txt3.y = coordsArray[i];
	addChild(txt3);
 
	txt4 = new TextField();
	txt4.text = "Four";
	txt4.x = 100;
	txt4.y = coordsArray[i];
	addChild(txt4);	
}

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

Регистрация: Jul 2011
Адрес: где-то на планете земля
Сообщений: 23
ну все правильно он делает, если надо на "новой строке" свой текст, тут цикл вообще не нужен, просто:
Код AS3:
txt1.y = coordsArray[0];
txt2.y = coordsArray[1];
txt3.y = coordsArray[2];
txt4.y = coordsArray[3];

Старый 15.07.2011, 01:26
Nooob вне форума Посмотреть профиль Отправить личное сообщение для Nooob Найти все сообщения от Nooob
  № 3  
Ответить с цитированием
Nooob
 
Аватар для Nooob

Регистрация: Mar 2007
Сообщений: 319
Код AS3:
var coordsArray:Array = [100, 150, 200, 250];
var textArray:Array = ["One", "Two", "Three", "Four"];
var textFieldArray:Array = [];
for(var i:int = 0; i < coordsArray.length; i++)
{
	textFieldArray[i] = new TextField();
	textFieldArray[i].text = textArray[i];
	textFieldArray[i].x = 100;
	textFieldArray[i].y = coordsArray[i];
	addChild(textFieldArray[i]);
}
например


Последний раз редактировалось Nooob; 15.07.2011 в 01:29.
Старый 15.07.2011, 01:31
lolsuicide вне форума Посмотреть профиль Отправить личное сообщение для lolsuicide Найти все сообщения от lolsuicide
  № 4  
Ответить с цитированием
lolsuicide
 
Аватар для lolsuicide

Регистрация: Jul 2011
Адрес: где-то на планете земля
Сообщений: 23
можно и coordsArray убрать
Код AS3:
textFieldArray[i].y = 100 + i*50

Старый 15.07.2011, 09:26
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 5  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Если по-конкретнее, то можно, например, так:
Код AS3:
var texts:Array = ["one", "two", "three", "four"];
var i:int;
for (i = 0; i < texts.length; i++) {
       var txt:TextField = new TextField();
       txt.text = texts[i];
       txt.x = 100;
       txt.y = 100 + i * 50;
       addChild(txt);
}

Старый 15.07.2011, 11:35
arkadattx вне форума Посмотреть профиль Отправить личное сообщение для arkadattx Найти все сообщения от arkadattx
  № 6  
Ответить с цитированием
arkadattx

Регистрация: Apr 2010
Сообщений: 219
goodguy, а зачем выносить из цикла переменную i и при этом не создавать переменную, указывающую на длину массива?

Старый 15.07.2011, 11:44
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 7  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
это по конвенции =)
__________________
...вселенская грусть

Старый 15.07.2011, 12:06
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 8  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Цитата:
и при этом не создавать переменную, указывающую на длину массива?
Можно и указать. А можно и i не выносить. Для такого маленького массива все это не принципиально
хотя я обычно выношу и то и другое

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Цитата:
можно и coordsArray убрать
В 90% случаев да. В 10% верстальщик, знакомый с законами типографики, предпочтет ручное управление расстоянием между строками.
__________________
Reality.getBounds(this);

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

Теги
array , цикл for
Опции темы
Опции просмотра

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

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


 


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


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