![]() |
работа с классами
помогите разобраться
создал класс наследуемый от array Код AS3:
Код AS3:
[Fault] exception, information=ReferenceError: Error #1069: Не удалось найти свойство 0 в SVoyGame.ArrayPole; отсутствует значение по умолчанию. подскажите пожалуйста как к этому массиву теперь обращаться |
ByteArray не равен Array (ошибка типов переменных)
|
Код AS3:
|
Цитата:
Добавлено через 1 минуту Цитата:
|
Код AS3:
|
т.е. массив содержит массивы ByteArrey
Добавлено через 38 секунд Цитата:
|
Код AS3:
|
this не прошел
[Fault] exception, information=ReferenceError: Error #1056: Не удается создать свойство 0 в SVoyGame.ArrayPole. на строке this[yy]=new bytearray; |
Цитата:
|
Цитата:
да и вообще это относиться только к классу (кажись) а не к его экземпляру Добавлено через 1 минуту trace(ArrayPole[5][5]); в классе выдает инфу а в основном тексте уже нет Добавлено через 6 минут т.е. приложение запускается объявляется pole:arraypole конструктор срабатывает внутри класса выводит инфу но не передает ее экземпляру как то так получается |
Еще раз....
Код AS3:
|
pole.length пишет ноль
Добавлено через 1 минуту почти цикл в конструкторе public function ArrayPole(sizey:int, sizex:int):void Добавлено через 3 минуты да с this захлебнулся на уровне создания-заполнения еще в классе |
Вот так должен выглядеть ваш класс
Код AS3:
Код AS3:
|
в SVoyGame/ArrayPole.as
Код AS3:
Код AS3:
Добавлено через 2 минуты UOTE=Партизан;1082854]Вот так должен выглядеть ваш класс Код AS3:
Добавлено через 7 минут соврал не там ошибка Добавлено через 9 минут в функции конструктора есть еще функция в ней к ArrayPole тоже обращать через this или ArrayPole Добавлено через 22 минуты Код AS3:
Добавлено через 28 минут ага проблема в функциях внутри конструктора // закоментировал одну в другой проблема - они не видят массив |
почитайте вот тутклассы
|
выкинул их за пределы конструктора (модифицировал осуществлением передачи size)
все заработало как надо объясните пожалуйста в чем проблема была |
Код AS3:
|
канчно new arraypole
надо читать меж строк |
Цитата:
|
))
там не код был представлен а рассуждения действий а если рядом код взглянуть то всё на месте так что придирки к словам Добавлено через 1 минуту конечно же я только учусь и мож не правильным словарем пользуюсь Добавлено через 14 минут вернемся к теме выкинул их(функции которые были внутри конструктора) за пределы конструктора (модифицировал осуществлением передачи size) все заработало как надо объясните пожалуйста в чем проблема была разве нельзя объявлять функцию внутри функции и если можно то почему внутренняя функция не видит переменные главной |
ну во-первых - документация по Array говорит нам следующее
Цитата:
относится это именно к экземпляру класса, и тогда this[0] работает. во-вторых, у вас в коде ересь. вы кладёте в поле ByteArray, а потом пытаетесь что-то еще положить в него. если вы хотите, чтоб у вас был массив x*y из ByteArray - должно быть так Код AS3:
UPD извиняюсь, если это уже написали - пропустил вторую страницу |
Код AS3:
GraphDates[nnn] = ...; теперь то что во что я не врубаюсь ни как не пойму |
Svoy4, вы, вообще, пытаетесь понять то, что вам пишут или нет?
На текущий экземпляр класса ссылается this. Класс нужно объявить как динамический. |
Думаю, я знаю решение этой задачи века...
Svoy4, думаю, вот так у вас будет работать: Код AS3:
|
Цитата:
Добавлено через 5 минут \src\SVoyGame\GraphDates.as(12): col: 5 Error: The this keyword can not be used in static methods. It can only be used in instance methods, function closures, and global code. this[nnn] = new Array; |
Ну конечно не работает, если писать код вне методов класса.
Предлагаю автору сначала изучить теорию, а не терроризировать форум тщетными попытками что-то сваять научным тыком. |
Код AS3:
Добавлено через 2 минуты Цитата:
а если мне не нужны методы class - хочу использовать как статическую базу данных |
Цитата:
|
Цитата:
но без практики ни как не изучить если хватало только теории тогда вообще форум не нужен был только галерея работ Добавлено через 5 минут по основном тексте создавал array c вложенными array ... заполнял их нужной информацией и обращался к ним как к статическим данным разложенными по ячейкам но это был просто громадный кусок кода хотел его выкинуть за пределы основного кода использование класс мне показалось не плохая идея мож что нибудь другое посоветуете Добавлено через 25 минут мож include |
Какой нафиг инклюд... Давай так Svoy4 - вы напишите какая у вас задача, словесно, без ваших примеров кода, а мы покажем кодом , как выполняется данная задача.
Сейчас вы видимо даже не понимаете, что у любого класса есть конструктор, даже если вы его не указываете явно, а написать цикл ВНЕ методов , создавая там же локальные переменные, это все равно , что метла-микроволновка, огурец-нога.... |
Пока Вы считаете, что классы это такая милая фишечка, которая поможет Вам уменьшить количество главного кода в кадрах, ничего хорошего не выйдет. Вы должны принять решение, что полностью переходите на код в классах (рано или поздно это сделать придется), и начать изучать КАК. Как пишутся и организуются классы. Не надо выдумывать из головы "может быть, так?" Все не настолько просто. Класс это не выдранный фрагмент текста. У него есть структура. Читайте, изучайте. Смотрите примеры. Делайте простые тесты с ясными результатами. Гадать бессмысленно. Потратите кучу времени и не приобретете ничего кроме новых заблуждений.
|
| Часовой пояс GMT +4, время: 04:36. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.