Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Вызов функции одного класса из другого (http://www.flasher.ru/forum/showthread.php?t=172363)

maloun365 07.12.2011 20:22

Вызов функции одного класса из другого
 
Доброго всем времени суток.
Хочу из сцены 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;

при этом также неработая


Часовой пояс GMT +4, время: 02:51.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.