![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Nov 2008
Сообщений: 88
|
Добрый день!
Есть класс документа main с константой WIN_WIDTH Game/main.as package Game { ... public class Main extends MovieClip { ... public const WIN_WIDTH = stage.stageWidth; ... } Game/Ship.as package Game { ... public class Ship extends MovieClip { ... public function Ship() { x=WIN_WIDTH/2; } ... } Подскажите как правильно к ней обратиться? Последний раз редактировалось maklaus; 16.12.2008 в 18:55. |
|
|||||
|
Регистрация: Jun 2007
Сообщений: 374
|
Если хотите выровнять на сцене, то так выравнивать не надо. Используйте added_to_stage
А вообще static. |
|
|||||
|
Регистрация: Nov 2008
Адрес: Москва
Сообщений: 52
|
x=WIN_WIDTH/2; - как компилятор должен догадаться что вам нужна переменная WIN_WIDTH из класса Main. Он ищет ее в себе, не находит и естественно ругается.
И константу сделать не только public, а еще и static. |
|
|||||
|
Регистрация: Jul 2006
Сообщений: 170
|
Можно использовать композицию.
Class A: package { import flash.display.Sprite; public class A extends Sprite { public function A() { var b:B=new B(); trace(b.WIDTH); } } } Можно еще использовать статические свойства класса. |
|
|||||
|
Правильный вариант
В конструкторе B можно не писать super, его вызов будет неявным.
__________________
Оптимизация производительности на уровне кода |
|
|||||
|
Регистрация: Nov 2008
Сообщений: 88
|
ОК! Всем спасибо за ответы!!! =)
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Вполне себе будет явным, если этот B будут создавать, как экземпляр, в противном случае никаких вывозов конструктора не будет. Если класс используется только лишь для хранения статических констант, то само описание конструктора можно опустить, а не оставлять обрубок без кода внутри. Если же планируется создавать экземпляры такого класса, то даже в случае, если конструктор пуст, он обязателен к описанию вместе с вызовом супер-конструктора.
|
|
|||||
|
Регистрация: Nov 2008
Сообщений: 88
|
Вопрос в догонку. Если исправить код на:
package Game { ... public class Main extends MovieClip { ... public static const WIN_WIDTH = stage.stageWidth; ... } package Game { ... public class Ship extends MovieClip { ... public function Ship() { Main.x=WIN_WIDTH/2; } ... } 1120: Access of undefined property stage. Как исправить? |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Дождаться события ADDED_TO_STAGE и присвоить значение стат. переменной.
|
|
|||||
|
Цитата:
B наследуется от Sprite. Конструктор Sprite не принимает инициализационных значений, а это значит, что в конструкторе наследника super можно не вызвать явно. Смысл был такой.
__________________
Оптимизация производительности на уровне кода Последний раз редактировалось _Smirnoff; 17.12.2008 в 13:35. |
![]() |
![]() |
Часовой пояс GMT +4, время: 23:29. |
|
|
« Предыдущая тема | Следующая тема » |
|
|