![]() |
public массив
Как можно создать public массив, чтоб его можно было изменять из других классов?
класс с массивом Код AS3:
Код AS3:
1061: Call to a possibly undefined method initArrays through a reference with static type Class. 1061: Call to a possibly undefined method addCraft through a reference with static type Class. |
Вам нужно создать static массив. Вместо public напишите static.
А в вашем примере вы обращаетесь к классу, а методы и массив написали для экземпляра класса. Сделайте методы и массив статик и будет работать. |
Не вместо, а вместе :)
И названия классов принято писать с большой буквы. |
Если объявить массив как static var, то к нему можно будет обратиться из любого места программы
Код AS3:
Код AS3:
|
udaaff, ну можно и вместо, но будет warning) ошибся.
|
Это продолжение :-|
Я сначала тоже пробовал static но выбивало ошибку, теперь я понял из-за чего. Проблема вот в чем получилась Есть класс Код AS3:
10 таких классов нужно сохранить в массив который находится в классе myglobal Код AS3:
Делаю я так: Код AS3:
А потом пытаюсь прочитать массив из 4-го класса Код AS3:
Код AS1/AS2:
|
Напиши так, возможно ситуация прояснится:
Код AS3:
Следовательно экземляр класса craft создается раньше, чем выполняется вот это: Код AS3:
|
Кстати, где то читал что злоупотреблять статичными переменными не стоит, это так?
Иногда стоишь перед выбором создать статичную переменную или просто скинуть ссылку на нее в пару конструкторов. |
Второе лучше.
|
Цитата:
|
Всякие левые классы не смогут получить доступ к этому массиву, а только те, которым он нужен - инкапсуляция тобишь + ООП, да и вдобавок код более хорош - может быть, вы захотите когда нибудь создать ещё 2 таких же объекта, но им будет нужен свой массив. Вариант со статиком накрывается сразу - не делать же 2 массива статики, это бред. Вам может потребоваться 40 таких.
Конечно, наверное вам в этом случае создавать 2 таких же не придется, однако придёт время - и у вас будет уже всё готово, потому что вы по привычки написали правильно. |
На
Цитата:
Код AS1/AS2:
|
Цитата:
Код AS3:
Код AS3:
|
OMG! Заработало! :eek:
Нужно было всего лиш пустой массив создавать enemyCrafts = new Array(); Код AS1/AS2:
Код AS3:
|
| Часовой пояс GMT +4, время: 07:31. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.