Отношение кода на первом кадре основной временной шкалы к коду класса и объектам библиотеки - PullRequest
0 голосов
/ 27 марта 2011

Дошло до того, что дыра в моих знаниях AS3 становится большой!Понимая, что у меня путаница в отношении:

Тело кода в первом кадре файла AS3.(Который я до сих пор использовал для создания экземпляров объектов библиотеки с использованием addchild и выполнения вызовов кода класса).Этот код называется кодом документа?Как люди это называют?

Многочисленные классы связаны друг с другом, расширяя друг друга и т.д.

Объекты библиотеки (обычно графические объекты)

Должно ли это быть сделано по-другому?

У меня есть следующие проблемы из-за непонимания:

Сложный из класса Addchild, но прямо в коде основного тела.Не можете вызывать функции для основного кода тела из классов, потому что код класса не знает, что основной код тела существует?

Так что кажется, что два не могут легко общаться?

Любые указатели будут оченьоценили.

1 Ответ

1 голос
/ 27 марта 2011

Код на первом кадре называется «сценарий временной шкалы» и должен быть минимальным (в зависимости от проекта).В большинстве случаев я использую код временной шкалы для установки новых объектов из других классов.

Класс документа отличается и может рассматриваться как особый случай.Он автоматически вызывается при запуске SWF.Он устанавливается во время разработки, нажимая на сцену и вводя имя класса в поле класса документа в разделе свойств.

За кулисами Flash захватывает весь код временной шкалы и помещает в класс документа в виде серии методов, которые вызываются при изменении кадра на временной шкале.Если вы не создали класс документа, Flash создаст класс по умолчанию и все равно поместит туда код временной шкалы.Этот процесс невидим для разработчика, и мало кто знает, как он работает.Результаты этого становятся очевидными, когда вы начинаете использовать такие методы, как addFrameScript (продвинутый метод - изучите его, когда вы немного увереннее).Ах, радости.@ Адриан, не волнуйся, освоить это нелегко.Ваша путаница проистекает из того факта, что Adobe схватила объектно-ориентированный язык и привела его к устаревшей системе, основанной на временной шкале.строго типизированный язык.

Один из способов настроить класс:

package {
    import flash.display.*;

    public class Foo extends Sprite {
        private var _stage:MovieClip;

        public function Foo(stage:MovieClip) {
            _stage = stage; // access to the stage      
        }

        public function generateBoxes(n:int):void {
            for(var i:int = 0; i < n; i++) {
                                // call stage function
                _stage.addBox(Math.random() * 50, Math.random() * 50);
            }
        }

    }
}

Затем на сцене

var foo:Foo = new Foo(this);

foo.generateBoxes(10);

// Gets called by Foo
function addBox(x:Number, y:Number):void {
    var b:Box = new Box();
    b.x = x;
    b.y = y;
    addChild(b);
}

В библиотеке должен быть экспортирован графический объект для ActionScript с именем Box.(название класса)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...