Вопрос

Я пытаюсь встроить x символов следующим образом:

[Embed(source='graphics/backgrounds.swf', symbol='background01')]
private var Background01 : Class;

проблема в том, что у меня около 100 фоновых символов, и я хотел бы встроить их, не записывая каждый из них, как в приведенном ниже коде:

[Embed(source='graphics/backgrounds.swf', symbol='background01')]
private var Background01 : Class;

[Embed(source='graphics/backgrounds.swf', symbol='background02')]
private var Background02 : Class;

[Embed(source='graphics/backgrounds.swf', symbol='background03')]
private var Background03 : Class;

вместо этого я хотел бы использовать 2 таких цикла:

for (var i = 0;i < 10;i++)
{
    for (var j = 0;j < 10;j++)
    {
        [Embed(source='graphics/backgrounds.swf', symbol='background' + i + j )]
        // code for adding this to an 2d-array or something
    }
}

это не сработает, потому что сообщает мне, что метаданные неверны, поэтому мой вопрос:

Можно ли сделать это?или есть аналогичный способ сделать это?

Это было полезно?

Решение

Да, как ни печально это говорить, Маркус, но невозможно сделать то, что ты пытаешься.Метаданные не являются AS3, они не оцениваются, поэтому вы не можете использовать их так, как пытаетесь.

Однако если вы все равно собираетесь встроить 100 фоновых символов, почему бы не создать один MovieClip, каждый из которых будет находиться в кадре на временной шкале?Затем вставьте этот символ один раз и используйте gotoAndStop, чтобы перейти к нужному?

Хотя 100 фонов, загруженных в память в начале, в целом кажутся мне хитрым способом.Лучше, вероятно, было бы загружать фоны в память и из нее по мере необходимости.Конечно, это зависит от того, для чего они используются, но название «фон» подсказывает мне, что это может быть лучшим вариантом действий.

Другие советы

Я не верю, что можно помещать метадирективы в обычные операторы кода.Они являются частью объявления переменной в области действия класса, который вы пишете.

Если написание такого большого количества переменных оказывается обременительным, и вы назвали символы последовательно, как вы это сделали, напишите макрос Javascript в своем любимом текстовом редакторе (я использую и люблю KomodoEdit от ActiveState, и он бесплатный) и пусть он выдает текст, который вы можете вставить. в свой класс ActionScript.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top