0

AS3 swfにAS2 swfをロードしましたが、MovieClipLoaderオブジェクトのonLoadInit関数は実行されていません。画像は中央に配置されず、寸法(幅/高さ)が縮小されません。AS2 Gallery swfメインWeb AS3 swfにロード

私は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); 

答えて

0

残念ながら、AS3でAS2ムービーを読み込むと動作やバグに微妙な違いがあります。私はあなたが見ている動作も経験しています。映画がAS3にロードされているときに、リスナーでロードハンドラは動作しません。 AVM1ムービーを読み込むときに、特にネストしたときに、いくつかの奇妙な問題があります。

あなたができることは、クリップがロードされたときにonEnterFrameでポーリングすることです。 1つの方法は、_width!= 0を監視することです。これは、クリップがロードされると発生します。次に、位置を初期化することができます:

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

どこで私はonEnterFrameを付けますか? – klj613

+0

tmpImg.onEnterFrame = function(){trace(tmpImg._width)}は常に0を返します。 – klj613

+0

が最終的に機能してくれました。あなたは正しい方向に私を導いた:) – klj613

関連する問題