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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 06.10.2012, 15:50
says вне форума Посмотреть профиль Найти все сообщения от says
  № 1  
Ответить с цитированием
says
Banned
[+1 13.12.12]
[+6 15.11.12]
[+5 14.12.12]

Регистрация: Sep 2012
Сообщений: 91
Arrow Проблема с массивом.

Здравствуйте
Хочу заполнить поле кнопками,создал одну граф кнопку,далее запихал в цикл что бы произошло заполнение этими кнопками поля 10х10.
привожу свой простенький кодик
Код AS3:
package{
	import flash.display.MovieClip;
	//import flash.events.MouseEvent;
	//import flash.display.Sprite;
		public class Sap extends MovieClip{
			private var btn:Btn;//кнопка
			private var i:Number;//итератор цикла расставления кнопок
			private var j:Number;//итератор цикла расставления кнопок 
			private var array1:Array;
			private var array2:Array;
			public function Saper():void{
				stop();
				var array1=new Array[i];
				var array2=new Array[j];
				for (i=0;array1.length<10;i++){
					for(j=0;array2.length<10;j++){
					btn = new Btn;
					addChild(btn);
					btn.x=10;
					btn.y=55;
					btn.width = 28;
					btn.height = 28;
					}
				}
			}
                }
}
при компиляции,вижу ошибку:

RangeError: Error #1005: Array index is not a positive integer (NaN).
at Error$/throwError()
at Array$iinit()
at Saper$iinit()

при этом массив заполняется одним объектом типа Button.

что я могу делать не так?

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

Регистрация: Aug 2008
Адрес: Рязань
Сообщений: 723
ошибка тут:

Код AS3:
var array1=new Array[i];
var array2=new Array[j];
в момент создания массива i и j не определены (NaN)

попробуйте:
Код AS3:
var array1=[];
var array2=[];
также не увидел чтобы вы в массивы клали созданные кнопки

и лучше написать:
Код AS3:
for (i=0;i<10;i++){
__________________
low +

Старый 06.10.2012, 16:25
says вне форума Посмотреть профиль Найти все сообщения от says
  № 3  
Ответить с цитированием
says
Banned
[+1 13.12.12]
[+6 15.11.12]
[+5 14.12.12]

Регистрация: Sep 2012
Сообщений: 91
Код AS1/AS2:
package{
	import flash.display.MovieClip;
	import flash.events.MouseEvent;
	import flash.display.Sprite;
	public class Saper extends MovieClip{
		private var btn:Btn;//кнопка
		private var i:Number;//итератор цикла расставления кнопок
		private var j:Number;//итератор цикла расставления кнопок 
		private var array1:Array;
		//private var array2:Array;
		public function Saper():void{
			stop();
			Array_Use();
			}
		public function Array_Use extends MovieClip():void{ // <=== здесь пишет 1084: Syntax error: expecting leftparen before extends.
			var array1=new Array[i][j];
			//var array2=new Array[j];
			for (i=1;i<10;i++){
				for(j=1;j<10;j++){
				btn = new Btn;
				addChild(btn);
				btn.x=10;
				x++;
				btn.y=55;
				y++;
				btn.width = 28;
				btn.height = 28;
				}
			}
		}
 
	}
}
теперь флэш хочет какую то скобку.

Добавлено через 3 минуты
Цитата:
Сообщение от Jewelz Посмотреть сообщение
ошибка тут:

Код AS3:
var array1=new Array[i];
var array2=new Array[j];
в момент создания массива i и j не определены (NaN)

попробуйте:
Код AS3:
var array1=[];
var array2=[];
также не увидел чтобы вы в массивы клали созданные кнопки

и лучше написать:
Код AS3:
for (i=0;i<10;i++){
если
Код AS3:
var array1=[];
var array2=[];
получаем синтаксическую ошибку.

в цикле каждую итерацию я добавляю на сцену кнопку (btn).

Код AS3:
for (i=0;i<10;i++){
Здесь я подумал что цикл должен понимать с чем его связывают.

Старый 06.10.2012, 16:36
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 4  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
получаем синтаксическую ошибку.
Какую именно?
За исключением предупреждения о том, что здесь не типизированные переменные, никакой ошибки быть не должно.

п.с. В ас3 массивы динамические. Не обязательно им сразу задавать размерность

Старый 06.10.2012, 16:43
says вне форума Посмотреть профиль Найти все сообщения от says
  № 5  
Ответить с цитированием
says
Banned
[+1 13.12.12]
[+6 15.11.12]
[+5 14.12.12]

Регистрация: Sep 2012
Сообщений: 91
1084: Syntax error: expecting leftparen before extends.

Старый 06.10.2012, 17:01
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 6  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Код AS3:
var array1=new Array[i][j];
Это что такое?

Старый 06.10.2012, 17:06
says вне форума Посмотреть профиль Найти все сообщения от says
  № 7  
Ответить с цитированием
says
Banned
[+1 13.12.12]
[+6 15.11.12]
[+5 14.12.12]

Регистрация: Sep 2012
Сообщений: 91
это массив,двумерный.

Добавлено через 1 минуту
там в комментариях видно что я поначалу делал 2-а массива,но ошибка,которая там же в верхнем коде помечена,не прошла ,сделал 1-ин.

Старый 06.10.2012, 17:11
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 8  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Код AS3:
var array:Array = [];
for (var i:int = 0; i < 10; i++)
{
    array[i] = [];
    for (var j:int = 0; j < 10; j++)
    {
        array[i][j] = ...
    }
}

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
это массив,двумерный.
В ас3 нет двумерных массивов, как таковых. Есть массив массивов.
Такой способ инициализации не пройдет.
Как создать правильно udaaff уже показал

Старый 06.10.2012, 17:23
says вне форума Посмотреть профиль Найти все сообщения от says
  № 10  
Ответить с цитированием
says
Banned
[+1 13.12.12]
[+6 15.11.12]
[+5 14.12.12]

Регистрация: Sep 2012
Сообщений: 91
понял,только ошибка
Код AS3:
public function Array_Use extends MovieClip():void{ // <=== здесь пишет 1084: Syntax error: expecting leftparen before extends.
Добавлено через 39 секунд
осталась...

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

Теги
array , AS3 , Flas , массив , проблема
Опции темы
Опции просмотра

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

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


 


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


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