Скажем, у меня есть файл ресурсов, который экспортирует mc1 с 4 кадрами в нем. Я хотел бы создать новый MovieClip и вставить такие фреймы:
mc2:flash.display.MovieClip = new flash.display.MovieClip()
mc1.gotoAndStop(2);
mc2.gotoAndStop(1);
mc2.currentFrame = mc1.currenctFrame
mc1.gotoAndStop(1);
mc2.gotoAndStop(2);
mc2.currentFrame = mc1.currenctFrame
mc1.gotoAndStop(2);
mc2.gotoAndStop(3);
mc2.currentFrame = mc1.currenctFrame
mc1.gotoAndStop(4);
mc2.gotoAndStop(4);
mc2.currentFrame = mc1.currenctFrame
Я не использую Flash IDE. Я использую:
На данный момент я не пытаюсь создавать игры или что-то интерактивное. Мне удалось создать простую анимацию, в которой крутится фоновый спрайт (и все). Для этого я использовал TimerEvent. Но вместо этого я бы очень хотел иметь возможность создать MovieClip и прикрепить к нему отдельные кадры, а затем воспроизвести его в цикле.
В качестве альтернативы я могу создать MovieClip и просто программно рисовать на нем кадр за кадром. (а затем, конечно, играйте в цикле)
В основном я хотел бы использовать ActionScript для генерации контента вместо XML swfmill (не диалект simple, simple в порядке). Поскольку я новичок, я не знаю, какую еще информацию я могу вам дать. Скажите, пожалуйста, могу ли я предоставить какие-либо другие подробности?
![[UX] Категории и настройки внешнего вида Flash-сообщений](https://i.imgur.com/5LZljB8b.jpeg)
Я не знаю удобного способа делать то, что вы пытаетесь сделать. Ваш пример не будет работать, потому что currentFrame является свойством только для чтения, а также все, что он возвращает, - это целое число, представляющее номер кадра, а не данные, составляющие фактический кадр.
Мое предложение, если вам нужно динамически переставлять кадры, заключалось бы в том, чтобы обернуть этот конкретный MovieClip в специальный класс, который переводит gotoAndPlay (x) на любое число, которое вы хотите.
Однако это может быть не очень полезно в зависимости от того, чего вы пытаетесь достичь, но если вы немного проясните свой вопрос, я уверен, что мы сможем придумать правильное предложение.
Без Flash IDE нет смысла использовать gotoAndStop () и т. д.
Поскольку вы не можете добавлять разные активы в разные кадры, вам следует добавить их все как слои с помощью addChild (assetToAdd) и установить для всех, кроме одного, значение visible = false. Затем добавьте такую простую функцию:
function showFrame(num:int):void
{
for (var i:int = 0; i < numChildren; i++)
{
if (i == num)
{
getChildAt(i).visible = true;
}
else
{
getChildAt(i).visible = false;
}
}
}
да - убедитесь, что вы понимаете разницу между активом в вашей "библиотеке" и экземпляром на сцене.
Более легкий способ: for (var i: int = 0; i <numChildren; i ++) {getChildAt (i) .visible = i == num; }
Спасибо! Могу ли я добавить один и тот же актив с разными преобразованиями (конечно, с разными фреймами)?