2012-02-03 14 views
0

デフォルトでは、メインタイムラインの最初のフレームに2つのムービークリップがあります。最初の2つのムービークリップのアクションスクリプトコード。それぞれのレイヤーに保持されています。彼らはうまく働いていましたが、メインタイムラインの最初のフレームから2番目のフレームまでの3つのキーフレームをすべてシフトしたときです。それは正しく動作しません。私が次のキーフレームにそれらを移している理由は、最初のフレームにプリローダーを挿入したくないからです。ここでmovieclipが次のキーフレームas3に移動したときにアニメーションが正しく動作しない

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() 

ActionScriptコードです:ここで私が取得していた出力メッセージです

/*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(); 
+0

エラーコードとは何ですか? – Benny

+0

このフレームにenvelope_mcとbg_mainは存在しますか?フレーム2:59]は、flash.displayで \t ::スプライト/ constructChildren()は、flash.displayで \t ::スプライト()は、flash.displayで \t ::のMovieClip() \tで –

+0

OUTPUTのモードSETデバッグAFTER flash.display ::スプライト/ constructChildren() \tは、flash.displayで::スプライト() \tは、flash.displayで::のMovieClip()Flashphotographygallerywebsite10_flaで \t :: envolop_3() 私は取得していますエラーメッセージはありません。 –

答えて

0

あなたの最初のフレームがあなたの2つのムービークリップが定義されていないことを意味している空であるため、このエラーを取得しているときにプログラムを実行します。これが問題であることを確認する最も簡単な方法は、最初のフレームでアルファ= 0にし、2番目のフレームでアルファ= 1にすることです。エラーがない場合は、これらのムービークリップが最初のフレームで定義されていないことが確認されます。

解決策は、これらのムービークリップが実際に存在するときから2番目のコードを除外することです。最初のフレームでvisible = falseにして、常に利用できるようにします。

関連する問題