AS2 Gallery SWF загружен в основной веб AS3 SWF - PullRequest
0 голосов
/ 28 марта 2011

Я загрузил swf AS2 в swf AS3, но функция onLoadInit для объекта MovieClipLoader не выполняется; что оставляет мои изображения не по центру и не уменьшается в размерах (ширина / высота)

Это работает, если я запускаю AS2 swf (галерею) напрямую.

    listenerObj.onLoadInit = function (target:MovieClip) {
        if (target._height > _root.maxHeight) 
        {
            var ratio = target._height / _root.maxHeight;
            target._height = target._height/ratio;
            target._width = target._width/ratio;
        }
        if (target_mc._width > _root.maxWidth) 
        {
            var ratio = target._width / _root.maxWidth;
            target._height = target._height/ratio;
            target._width = target._width/ratio;
        }
        target._x = ((Stage.width/2)-(target._width/2));
        target._y = ((Stage.height/2)-(target._height/2));
    }
    MCL.addListener(listenerObj);

1 Ответ

0 голосов
/ 28 марта 2011

К сожалению, есть некоторые тонкие различия в поведении и ошибках при загрузке фильма AS2 в AS3.Я также испытываю поведение, которое вы видите - ни один из обработчиков загрузки не работает на слушателе, когда фильм загружается в AS3.При загрузке фильмов AVM1 возникают некоторые странные проблемы, особенно при вложенных загрузках.

Возможно, лучшее, что вы можете сделать, - это посмотреть на EnterFrame, чтобы узнать, когда загружаются клипы.Один из способов - следить за _width! = 0. Это должно произойти после загрузки клипа.Затем вы можете инициализировать позицию:

function onEnterFrame()
{
  if(target._width)
  {
    // your positioning+init code here
    onEnterFrame = null;
  }
}
...