PDA

Просмотр полной версии : Подскажите где ошибка, уже голову сломал


svdsLis
14.09.2013, 23:04
Проблема такая в коде есть строчка (trace(); // !* Ситуация), если ничего там не писать, ошибки нет, если всё же что угодно там написать, все переменные и методы описанные ниже этого метода становятся вне package.

Код:


package src.wtmodel.Events
{
import src.wtmodel.Events.Event;

public class EventCollection
{
// Основные переменные
private var eventList:Array; // Список объектов событий
private var length:uint = 0;

// Конструктор
public function EventCollection()
{
eventList = new Array();
}

// Добавление нового экземпляра события
public function addNewEvent(active:Boolean, global:Boolean, maxUse:uint, castTime:uint, cooldownTime:uint):uint
{
eventList[eventList.length] = new Event(active, global, maxUse, castTime, cooldownTime);
return eventList.length - 1;
}

// Добавление местоположения к экземпляру события
public function addEventPosition(id:uint, position:Array)
{
(eventList[id] as Event).position = position;
}

// Получить событие по идентификатору
public function getEventById(id:uint):Event
{
if (id > eventList.length)
{
return null;
}
else
{
return (eventList[id] as Event);
}
}

// Получить количество активных событий
public function getActivePositionEventsLength(location:uint, room:uint):uint
{
var length:uint = 0;
for each (var element:Event in eventList)
{
if (element.active == true)
{
for (var i:int; i < element.position.length / 2; i++)
{
if (element.position[i, 0] == location && element.position[i, 1] == room)
{
trace(); // !* Ситуация
}
}
}
}
return length;
}



// Получить активное событие комнаты по индексу пересчёта
public function getActivePositionEventByCount(location:uint, room:uint, countIndex:uint):Event
{
var count:uint = 0;
for each (var element:Event in eventList)
{
if (element.active == true)
{
for (var i:int; i < element.position.length / 2; i++)
{
if (element.position[i, 0] == location && element.position[i, 1] == room)
{
if (count == countIndex)
{
return element;
}
else
{
count++;
}
}
}
}
}
return null;
}
}
}

mikhailk
15.09.2013, 01:24
Вот тут:
if (element.position[i, 0] == location && element.position[i, 1] == room)


Двумерных массивов у нас нет.

Akopalipsis
15.09.2013, 01:30
Двумерных массивов у нас нет.
Когда я посмотрел на этот код, то мне сразу же захотелось услышать на него ответ, так как мне не понятно не то, что массива нет ( двухмерного ), а то что его вообще вроде нет. И ещё ответ, что нет именно двухмерного массива вынудил меня спросить, а он есть там? В коде у element тип Event. Это ошибка или я чего то не понимаю?

svdsLis
15.09.2013, 01:36
Ошибка именно в этом двухмерном массиве. Но сам массив там есть. Просто создал класс с именем Event.

Isfet
15.09.2013, 08:27
if (element.position[i][0] == location && element.position[i][1] == room)
если position - двумерный массив, если нет скорее всего так
if (element.position[i] == location && element.position[i] == room)