Мне было интересно, можно ли вставить рамочный скрипт в MovieClip и получить ссылку на mc, в который был вставлен скрипт, из функции, используемой в качестве рамочного скрипта.
Простой рабочий примерэто:
Существует мувиклип с именем mc.У него где-то есть метка фрейма 'end', и мы хотим добавить в этот кадр функцию stop () без добавления кода в сам MovieClip (имейте в виду, что это только пример).Итак, вот код (мы могли бы разместить его на основной временной шкале тестового фильма, на котором mc находится на сцене):
var end:int=0;
for (var i:int=0;i<mc.currentLabels.length;i++)
{
if (mc.currentLabels[i].name=='end')
end=mc.currentLabels[i].frame;
}
function doStop():void{
mc.stop();
}
// Frame script for label 'end'
mc.addFrameScript(end-1,doStop); // Frames are 0-based here
Когда точка воспроизведения достигает кадра, помеченного как «конец» в mc,Функция doStop () будет выполнена.Однако эта функция сохраняет свою первоначальную область видимости.Поэтому, чтобы остановить mc, нам нужно указать mc.stop ().this указывает на объект, в котором находится функция doStop, поэтому this.stop () не будет работать.Если бы мы хотели использовать одну и ту же функцию для нескольких mcs, нам нужно было бы как-то получить ссылку на текущий целевой mc.Вот что я искал.