私はExternalInterfaceを使用してjavascriptから呼び出す関数とactionscript関数にいくつかのアイデアがありましたが、swfにFlashVarsを渡すだけでdivのサイズを知ることができました。
こちらです。
1つのMovieClipを背景として、1つのMoveClipにそのヘッドが含まれています。
あなたのベスト・ベットは、この例の「これはトップのフラッシュ・ムービーです」というオプションでしょう。 あなたの最高のアイデアは比例スケールコンテンツを持つことである
stage.scaleMode = StageScaleMode.NO_SCALE;
または
stage.scaleMode = StageScaleMode.SHOW_ALL;
を設定します。
次に、resizeイベントのイベントリスナーを追加し、背景を拡大縮小/再描画します。あなたはイベントなど
を派遣 withouthその関数を呼び出すことができますので、私は、イベントハンドラの引数のデフォルト値を設定した
stage.addEventListener(Event.RESIZE, stageResizeHandler);
function stageResizeHandler(event:Event = null):void{
//assuming your background is called "background"
background.width = stage.stageWidth;
background.height = stage.stageHeight;
//if content needs recentering, assuming "content" is the name used
content.x = (stage.stageWidth - content.width) * .5;
content.y = (stage.stageHeight - content.height * .5;
}
stageResizeHandler();
代わりの
stage.dispatchEvent(new Event(Event.RESIZE));
あなたは必ず、あなたがinitiallizeたときに、その関数を呼び出すことではない必要があるかもしれません。
また、ステージのサイズに応じてコンテンツのサイズを変更する必要があります。 ので、ここで私がテストしたいくつかのコードです:
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
stage.addEventListener(Event.RESIZE, stageResizeHandler);
stageResizeHandler();
function stageResizeHandler(event:Event = null):void{
//resize bg
bg.width = stage.stageWidth;
bg.height = stage.stageHeight;
//scale proportionally
if(content.width > stage.stageWidth || content.height > stage.stageHeight){
var ratio:Number = getRatio(content);
if(stage.stageWidth > stage.stageHeight){
content.height = stage.stageHeight;
content.width = content.height * ratio;
}else
if(stage.stageWidth < stage.stageHeight){
content.width = stage.stageWidth;
content.height = content.width/ratio;
}
}else {
content.scaleX = content.scaleY = 1;
}
//centre
content.x = (stage.stageWidth - content.width) * .5;
content.y = (stage.stageHeight - content.height) * .5;
}
function getRatio(target:MovieClip):Number{
var ratio:Number;
target.width > target.height ? ratio = (target.width/target.height) : ratio = (target.height/target.width);
return ratio;
}
は、残念ながら、私は、特定のサイズにいくつかのちらつきを気づきました。私はスケーリングと実際にあなたがサイズ変更する方法に応じて比率が変化するという事実を推測しています。
アドバイスをいただきありがとうございます。不幸にも、これは例示的な画像に過ぎないと私は特定していました。フラッシュは、あらゆる種類の画像の写真スライドショーになります。私は例を誤解を与えないように最小限のものに変更します。 本当にありがとうございます。この問題に対する大きな解決策となりましたか? – user73119
問題ありません。私は内容の一部のサイズを変更するのを忘れてしまったので、私の答えを編集しました。私に思い出させてくれてありがとう。お役に立てれば。 –
うわー、それはかなりクールです。私はASとはあまり偉大ではないので、これを混乱させるために私はしばらく時間がかかります。この承認とそのコードのすべてを書き留めてくれてありがとう。これは非常に興味深い考えです。私はあなたに戻って、それがどのように進むのかを知らせます。本当に、もう一度ありがとう! – user73119