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

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

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

Регистрация: Aug 2013
Сообщений: 1
По умолчанию Тетрис. Вывод массива на экран.

Решил написать Тетрис на AS3.

для этого нужно создать массив массивов, т.е. поле игры, которое будет состоять из кубиков.

но вот не могу вывести массив массивов на экран.

должно получиться:

1 1 1
1 1 1
1 1 1

где вместо "1" будут кубики, и размер поля больше...

Код AS3:
var tf:TextField = new TextField;
	var arr:Array = [];
 
 
 
	for (i = 0; i < 3; i++)
	{
	  arr[i] = [];
	  for (j = 0; j < 3 ; j++)
	  {
	    arr[i][j] = "1";
	   }
	 }
 
	 for each (var mas:String in arr)
	 {
	   tf.text = mas;
	   addChild(tf);
	  }
Результат на экране: 1,1,1

Старый 29.08.2013, 22:29
Dip52 вне форума Посмотреть профиль Отправить личное сообщение для Dip52 Найти все сообщения от Dip52
  № 2  
Ответить с цитированием
Dip52

Регистрация: Aug 2012
Сообщений: 297
Возьмите этот пункт:
Код AS3:
for each (var mas:String in arr)
{
	tf.text = mas;
	addChild(tf);
}
И замените на этот:
Код AS3:
for each (var mas:String in arr)
{
	tf = new TextField();
	tf.text = mas;
	addChild(tf);
}
После этого вы снова увидите одно текстовое поле, чтобы это исправить, вам нужно заменить предыдущий пункт на этот:
Код AS3:
var l:int = arr.length;
for(var addedTextFields:int = 0; addedTextFields < l; addedTextFields++)
{
	var coordinateY:Number = 20 * addedTextFields;
	tf = new TextField();
	tf.y = coordinateY;
	tf.text = arr[addedTextFields];
	addChild(tf);
}

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

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Для вывода значений из массива, цикл for each - не лучшее решение, так как результат может быть совсем не в правильной последовательности.
Лучше используйте обычный цикл for. Что-то в этом духе.
Код AS3:
tf.wordWrap=true
for (var i:int=0;i<arr.length;i++)
{
     tf.appendText(arr[i]+"/n");
}

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

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

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


 


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


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