![]() |
|
||||||||||
|
|||||
|
Регистрация: Jan 2010
Сообщений: 187
|
Не могу понять в чём дело.
В классе Main добавляю на сцену пару объектов. Потом вызываю функцию из другого класса, которая должна добавить ещё один объект на сцену. package { import flash.display.*; import flash.events.*; public class Main extends Sprite { public var obj1:MovieClip; public var obj2:MovieClip; public function Main() { this.addEventListener( Event.ADDED_TO_STAGE, Function1 ); } public function Function1(event:Event = null):void { obj1 = new Object1(); addChild(obj1); obj2 = new Object2(); addChild(obj2); Class2.Function2(); } ..... package { import flash.display.*; import flash.events.*; public class Class2 extends MovieClip { public static var obj3:MovieClip; public function Class2() { } public static function Function2():void { trace("111"); obj3 = new Object3(); addChild(obj3); } .... Error: Call to a possibly undefined method addChild. addChild(obj3); Подскажите, Что я забыл или делаю неправильно? |
|
|||||
|
Function2 функция статическая, на кого вы собрались добавлять? Передавайте в нее stage или другой контейнер. Например так:
P.S. методы нужно называть с маленькой буквы. И желательно давать осмысленные имена, а не Function1 и Function2, это относится к именам классов и всего остального.
__________________
http://www.chessmax.ru Последний раз редактировалось Inet_PC; 27.02.2012 в 13:07. |
|
|||||
|
Регистрация: Mar 2011
Сообщений: 243
|
В static функции можно использовать только статические методы, поэтому он у вам и не видит addChild.
|
|
|||||
|
Регистрация: Jan 2010
Сообщений: 187
|
Спасибо за синтаксис. Учту. Названия такие - это для тестового примера просто. Для реального примера - согласен - названия будут другие.
А тогда вопрос. Можно обойтись без использования статической функции в этом деле? Я с классами только начал разбираться, и когда пробовал создать просто оно ругалось так: Error: Call to a possibly undefined method Function2 through a reference with static type Class. Добавлено через 1 минуту Или как передавать stage или другой контейнер? В общем, как обычно решают такую ситуацию? |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
"Обычно" дети делают внуков, а не братьев и сестренок.
Мейн основной класс, папа всем и вся. Только он решает, кого добавлять в свой список детей, а кого нет. Например, ваша Function2 могла бы возвращать дисплейный объект по запросу из Мейна, и Мейн этот объект добавлял бы в свой дисплейлист.
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Jan 2010
Сообщений: 187
|
Спасибо. С контейнером - получилось.
А вот ещё вопрос тогда. В главном классе я хочу прослушать тычок мышей и вызвать метод из другого класса. Вот так не работает. Функция-приёмник во втором классе выглядит так: Пришлось сделать так: menu2.button2.addEventListener(MouseEvent.MOUSE_DOWN, CC); } private function CC(e:MouseEvent):void { Class2.functionFromClass2(); } Заработало, но получилось немного сложнее. Неужели нельзя никак первым вариантом сделать? |
![]() |
![]() |
Часовой пояс GMT +4, время: 00:18. |
|
|
« Предыдущая тема | Следующая тема » |
|
|