Изменение фрагментов ролика в FlashDevelop (или других средах без графики) - PullRequest
0 голосов
/ 23 сентября 2011

Я делаю это:

    [Embed(source = "../lib/hfront.swf")]
    private var charfront1Class : Class;
    private var charfront1:MovieClip = new charfront1Class;

для создания объекта мувиклипа в FlashDevelop. Потому что нет никакой возможности (как в CS5) присваивать объекту библиотеки класс по своей сути.

Что мне нужно сделать, так это уметь выбирать, какой видеоклип будет отображаться, когда мой персонаж ходит. Нужно ли создавать отдельный класс для каждого мувиклипа и вызывать их из видимости? Или есть лучший способ, "переключить" на какой фрагмент ролика указывает мой текущий класс?

Спасибо

1 Ответ

1 голос
/ 25 сентября 2011

Во-первых, код для вставки неверен. Если вы встраиваете весь SWF-файл таким образом, вы не сможете контролировать его временную шкалу.

Чтобы иметь мувиклип, которым вы можете манипулировать, вы должны вставить символ этого SWF:

[Embed(source = "../lib/hfront.swf", symbol="walk")]
private var walkClass : Class;
private var walk:MovieClip = new walkClass;

[Embed(source = "../lib/hfront.swf", symbol="run")]
private var runClass : Class;
private var run:MovieClip = new runClass;

Во-вторых, убедитесь, что вы на самом деле вызываете stop () для каждой анимации, иначе они будут работать (и потреблять ЦП), даже если они не отображаются в списке.

Наконец, вот (наивный) пример показа 2 встроенных анимов (как потомков класса, расширяющего Sprite):

// current anim
private var current:MovieClip;

// showAnim("run") or showAnim("walk")
public function showAnim(anim:String):void {
    if (current) { current.stop(); removeChild(current); }
    current = this[anim];
    addChild(current);
    current.gotoAndPlay(1);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...