Анимации не работают правильно, когда мувиклип перемещается на следующий ключевой кадр as3 - PullRequest
0 голосов
/ 03 февраля 2012

По умолчанию у меня было 2 мувиклипа на первом кадре на главной временной шкале. И код ActionScript для первых двух мувиклипов. Они хранятся на каждом отдельном слое. Они работали просто отлично, но когда я переместил все три ключевых кадра с первого на второй кадр в строке основного времени. Это не работает должным образом. Причина, по которой я перемещаю их на следующий ключевой кадр, заключается в том, что я не хочу вставлять предварительный загрузчик в первый кадр. Вот выходное сообщение, которое я получаю:

 at Flashphotographygallerywebsite10_fla::MainTimeline/frame2()
          at flash.display::Sprite/constructChildren()
          at flash.display::Sprite()
          at flash.display::MovieClip()
          at flash.display::Sprite/constructChildren()
          at flash.display::Sprite()
          at flash.display::MovieClip()
          at Flashphotographygallerywebsite10_fla::envolop_3()

Вот код действия:

/*Re-sizeable background*/
//set stage for FBF
stage.align = "TL";
stage.scaleMode = "noScale";


//define dynamic aspect ratios
var bg_mainHeight = bg_main.height / bg_main.width;
var bg_mainWidth = bg_main.width / bg_main.height;


//add event listener to the stage
stage.addEventListener(Event.RESIZE, sizeListener);


//conditional statement to account for various initial browswer sizes and proportions
function scaleProportional():void {
          if ((stage.stageHeight / stage.stageWidth) < bg_mainHeight) {
                    bg_main.width = stage.stageWidth;
                    bg_main.height = bg_mainHeight * bg_main.width;
          } else {
                    bg_main.height = stage.stageHeight;
                    bg_main.width = bg_mainWidth * bg_main.height;
          };
}


//center bg_mainture on stage
function centerbg_main():void {
          bg_main.x = stage.stageWidth / 1000;
          bg_main.y = stage.stageHeight / 1000;
}


// make listener change bg_mainture size and center bg_mainture on browser resize
function sizeListener(e:Event):void {
          scaleProportional();
          centerbg_main();
}


//run initial locations and size
scaleProportional();
centerbg_main();




/*envelope align to center*/
function resizeHandler(e:Event):void
{
  envelope_mc.x = (envelope_mc.stage.stageWidth / 2) - (envelope_mc.width / 1.15);
  envelope_mc.y = (envelope_mc.stage.stageHeight / 2) - (envelope_mc.height / 1.15);
}

stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.addEventListener(Event.RESIZE, resizeHandler);

stage.dispatchEvent(new Event(Event.RESIZE));



stop();

1 Ответ

0 голосов
/ 06 февраля 2012

Вы получаете эту ошибку, потому что ваш первый кадр пуст, что означает, что ваши 2 мувиклипа не определены при запуске программы. Самый простой способ убедиться, что это проблема, - сделать их alpha = 0 в первом кадре и alpha = 1 во втором. Если у вас нет ошибок, это подтвердит, что эти мувиклипы не определены в первом кадре.

Решение состоит в том, чтобы отключить код на секунду, когда эти мувиклипы действительно существуют. Или сделайте их видимыми = false в первом кадре, чтобы они всегда были доступны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...