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

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

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

Регистрация: Jun 2012
Адрес: Татарстан
Сообщений: 118
По умолчанию массив возвращает 0

имеется класс в котором существуют такие функции

Код AS3:
package main
{
	//Класс карты проходимости
	//
	import flash.display.DisplayObject;
	import flash.display.Sprite;
	import flash.display.BitmapData;
	import flash.display.Bitmap;
	import flash.geom.Matrix;
	import Framework.cache.*;
 
	public class Map extends Sprite
	{
	public function Map(tidlNumber:int, tidlWidth:int, tidlHeight:int)
		{
 
			clearMapMask();
                        trace(getCellState(1, 1)); //0
	        }
 
	public function getCellState(i:int, j:int):int
		{
			// Проверка на выход за приделы массива
			if (i >= 0 && i < _tidlNumber && j >= 0 && j < _tidlNumber)
			{
				return _mapMask[i][j];
			}
			else
			{
				return STATE_CELL_BUSY;
			}
		}
 
	private function clearMapMask():void
		{
			// Создаем новый массив
			_mapMask = [];
			// Двигаемся по высоте карты
			for (var ay:int = 0; ay < _tidlNumber; ay++)
			{
				// Добавляем новую строку в массив
				_mapMask[ay] = [];
 
				// Двигаемся по ширине карты
				for (var ax:int = 0; ax < _tidlNumber; ax++)
				{
					// Задаем ячеке свободное состояние
					_mapMask[ay][ax] = "tidl_mc";
				}
			 }
 
		 }
 
 
 
 
 
}

почему trace(getCellState(1, 1)); который находится в конструкторе класса, показывает значение 0? хотя в функции clearMapMask() массиву _mapMask я присваиваю значение tidl_mc";, а вот что самое интересно если вместо tidl_mc"; я присвою любую из цифр например 2 то двойку трейс показывает.

Старый 30.10.2012, 12:58
DaFive вне форума Посмотреть профиль Отправить личное сообщение для DaFive Посетить домашнюю страницу DaFive Найти все сообщения от DaFive
  № 2  
Ответить с цитированием
DaFive
 
Аватар для DaFive

Регистрация: May 2008
Адрес: {0,0}
Сообщений: 754
Записей в блоге: 1
Отправить сообщение для DaFive с помощью ICQ
А что за _tidlNumber ?
__________________
Кодинг, багинг, алгоритминг. me @

Старый 30.10.2012, 13:00
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 3  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,112
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
А, _tidlNumber, tidlWidth и tidlHeight у вас где обозначены?
__________________
hauts.ru

Старый 30.10.2012, 13:20
razerw вне форума Посмотреть профиль Отправить личное сообщение для razerw Найти все сообщения от razerw
  № 4  
Ответить с цитированием
razerw

Регистрация: Jun 2012
Адрес: Татарстан
Сообщений: 118
я их убрал из конструктора
_tidlNumber =10
tidlWidth = 30
tidlHeight = 20

эти переменные всего лишь задают цикл

Старый 30.10.2012, 13:59
Molecula вне форума Посмотреть профиль Отправить личное сообщение для Molecula Найти все сообщения от Molecula
  № 5  
Ответить с цитированием
Molecula
 
Аватар для Molecula

Регистрация: Apr 2007
Сообщений: 1,369
Потому что trace(int("hello string")) = 0;
__________________
john

Старый 30.10.2012, 14:27
razerw вне форума Посмотреть профиль Отправить личное сообщение для razerw Найти все сообщения от razerw
  № 6  
Ответить с цитированием
razerw

Регистрация: Jun 2012
Адрес: Татарстан
Сообщений: 118
непонятно как тогда добиться нужного результата?

Старый 30.10.2012, 14:34
Isfet вне форума Посмотреть профиль Отправить личное сообщение для Isfet Найти все сообщения от Isfet
  № 7  
Ответить с цитированием
Isfet

Регистрация: Mar 2012
Адрес: г.Новосибирск
Сообщений: 381
Цитата:
Код AS3:
	_mapMask[ay][ax] = "tidl_mc";
так вы заполняете весь массив не экземплярами класса, а строками.
Цитата:
Код AS3:
	_mapMask[ay][ax] = tidl_mc;
при условии что tidl_mc это экземпляр какого-то класса, или лежит на сцене и ему присвоили имя экземпляра

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

Регистрация: Apr 2007
Сообщений: 1,369
Автор заполняет массив строками, а хочет вернуть int из строки, вот и всё.
__________________
john

Старый 30.10.2012, 15:18
razerw вне форума Посмотреть профиль Отправить личное сообщение для razerw Найти все сообщения от razerw
  № 9  
Ответить с цитированием
razerw

Регистрация: Jun 2012
Адрес: Татарстан
Сообщений: 118
я не хочу получить int я хочу получить тип String а получаю int со значением 0

Старый 30.10.2012, 15:22
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 10  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,112
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
Код AS3:
public function getCellState(i:int, j:int):int
Последний int поменяйте на String или *
__________________
hauts.ru

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

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

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


 


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


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