|
|
|||||
Регистрация: Aug 2012
Сообщений: 38
|
Вопрос по классам
Здравствуйте. Рассматриваю пример. Как класс (из первого примера, например) запустить не как родительский, а как обычный класс? Делаю так:
public function TestBody1():void { addEventListener(Event.ADDED_TO_STAGE, init); } private function init():void { graphics.beginFill(0x1B1B1B); graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight); addChild(debugSprite); createWorld(); createWallStage(); createBodies(); createDebugDraw(); addEventListener(Event.ENTER_FRAME, update); stage.addEventListener(MouseEvent.MOUSE_DOWN, flagCheck); stage.addEventListener(MouseEvent.MOUSE_UP, flagCheck); } |
|
|||||
[+1 25.10.13]
[+4 18.03.14] |
В примере еще куча кода, которого нет у вас
|
|
|||||
Регистрация: Aug 2012
Сообщений: 38
|
Я опустил, весь код, чтобы награмождал тему (он такой же, без изменений).
Ошибка: Error #1063: Несоответствие количества аргументов в TestBody1/init(). Ожидалось 0, получено 1. Класс Main.as: package { import flash.display.Sprite; import flash.events.Event; import flash.display.DisplayObject; public class Main extends Sprite { public function Main():void { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); } private function init(e:Event = null):void { removeEventListener(Event.ADDED_TO_STAGE, init); // entry point addChild(new TestBody1); } } } Последний раз редактировалось Fazer; 10.07.2013 в 02:07. |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Ну в тексте ошибки же написано, даже по-русски))
И зачем Вы показываете код класса Main, когда ошибка в функции init() класса TestBody1 ? Предполагаю, что эта функция не принимает параметров (в отличие от такой же функции в Мэйн), а вызывается так же, как обработчик события, и следовательно должна принимать аргументом объект этого самого События))
__________________
Reality.getBounds(this); |
|
|||||
Очевидно что совсем неправильная работа с объектами. У вас две ошибки:
1. У обработчика события Event.ADDED_TO_STAGE должен быть один входной параметр типа Event: 2. При вызове конструктора забыли скобки: И еще стоит отметить, что если создаете объект таким образом то потом никакого доступа к нему напрямую у вас не будет. Советую почитать другие примеры, более начального уровня. |
|
|||||
Регистрация: Aug 2012
Сообщений: 38
|
Wolsh, спасибо. KumoKairo , спасибо за подробный ответ. Думаю вы правы, ошибки элементарные. Позабыл теорию, надо браться по новой.
|
|
|||||
Banned
[+1 30.08.14]
[+1 26.02.14] Регистрация: Apr 2012
Сообщений: 162
|
вызов метода graphics из пустоты не способствует реализации скрипта.
|
|
|||||
Цитата:
__________________
return this... |
|
|||||
Banned
[+1 30.08.14]
[+1 26.02.14] Регистрация: Apr 2012
Сообщений: 162
|
ОК! А this в этом коде что?(коде источника)
да ещё какой-то debugSprite |
|
|||||
[+1 16.07.13]
[+4 16.07.13] Регистрация: Oct 2005
Сообщений: 217
|
this в данном случае это объект Main , который расширяет класс Sprite (является DisplayObjectContainer)
и при инициализации автоматически добавляется в Stage. debugSprite - скорее всего просто переменная ссылающаяся на какой-то объект. Также не соглашусь с KumoKairo 2. При вызове конструктора забыли скобки: можно создавать объект опуская скобки , если не требуется передавать в конструктор параметры. |
Часовой пояс GMT +4, время: 02:12. |
|
« Предыдущая тема | Следующая тема » |
|
|