Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Подскажите где ошибка, уже голову сломал (http://www.flasher.ru/forum/showthread.php?t=203313)

svdsLis 14.09.2013 23:04

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

Код:
Цитата:

Код AS3:

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

Вот тут:
Код AS3:

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

Код AS3:

if (element.position[i][0] == location && element.position[i][1] == room)

если position - двумерный массив, если нет скорее всего так
Код AS3:

if (element.position[i] == location && element.position[i] == room)



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

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