Показать сообщение отдельно
Старый 07.12.2011, 20:22
maloun365 вне форума Посмотреть профиль Отправить личное сообщение для maloun365 Найти все сообщения от maloun365
  № 1  
Ответить с цитированием
maloun365
 
Аватар для maloun365

Регистрация: Dec 2011
Адрес: в Перми
Сообщений: 33
По умолчанию Вызов функции одного класса из другого

Доброго всем времени суток.
Хочу из сцены fla файла вызывать функцию класса которая в свою очередь вызывает функцию ещё одного класса, но как всегда ниче не выходит!
Код AS1/AS2:
class GameTank.GameEngine{
	var field:GameTank.Battlefield;
	var CreateLvl1 = function(scene:MovieClip){ // в scene пишется _root 
		field.DrowField(scene,30,20,9,7,50);
		};
}
это код класса который по задумке в функции CreateLvl1 вызывает как раз ту самую функцию друго класса(DrowField). Кстати без класса посредника эта функция призамечательно работет. Может быть я неправильно объявил второй класс (Battlefield)?
в функции DrowField я рисую на сцене (lineTo, moveTo)...

Пробовал объявлять по другому, но эффект тот же самый:
Код AS1/AS2:
	function CreateLvl1(scene:MovieClip){
		field.showmessage();// function showmessage(){trace("2")}
        }
Добавлено через 17 часов 22 минуты
вообще использование одного класса другим возможно или я тут какую-то чушь несу?

Добавлено через 20 часов 9 минут
на самом деле просто не вызывается метод CreateLvl1 !!!
или вызывается не правильно, в общем проблема не в содержимом функции, а в работе с ней

Добавлено через 20 часов 41 минуту
выход найден! частично...
оказывается всё дело было в том, что имя класса нужно писать только с одной большой буквой, если написать две как было у меня (GameEngine), то работать класс не будет,
но проблема с объявлением внутри класса всё ещё осталась!
Цитата:
Gameengine.as: Строка 2: A class's instance variables may only be initialized to compile-time constant expressions.
var field:GameTank.Battlefield = new GameTank.Battlefield();
т.е. по нормальному
Код AS1/AS2:
var field:GameTank.Battlefield = new GameTank.Battlefield();
-не компилится
за то компилится с
Код AS1/AS2:
var field:GameTank.Battlefield;
при этом также неработая


Последний раз редактировалось maloun365; 08.12.2011 в 17:20.