2011-07-10 5 views
0

TheFWA(thefwa.com)がうまくやったネイティブのスクロールバーのエフェクトを実現する方法を知りました(私はFlexスクロールバーのファンではありません)。フラッシュオブジェクトをちらつきなくブラウザからサイズ変更する

私はこの記事(http://stackoverflow.com/questions/318675/how-can-i-create-a-flex-application-with-dynamic-height)を見つけ、実装しました。フラッシュオブジェクトがサイズを変更するたびにExternalInterfaceを介してJS関数を呼び出します。このJS関数は、flashオブジェクトを保持するdivのサイズを変更するだけで、ネイティブバーを作成します。

残念ながら、フラッシュオブジェクトは、(たとえば、サイズを変更せずに単純にすべての方向に引っ張られたように)数ミリ秒間歪んでし​​まいます(たとえば、800から1800の高さ)。これらのミリ秒の後、物事は正常に戻りますが、全体の状況は実際に視覚的に迷惑です。

元々、タイミングの問題だと思っていましたが、遅延を設定しようとする試みの後に、その効果は同じでした。ただ遅れました。

どうすれば解決できますか?私はそれが技術的に可能であることを知っています。 TheFWAを見て、フラッシュとブラウザがどのようにスムーズに通信しているかを見て、ちらつきやミスをなくしてネイティブスクロールバーを動作させてください。

答えて

1

を見てみましょうこれは、Flash Player 10以降登場し、まだFP 11ベータ版まで起きている問題です。

SWFを含むDIVのサイズを変更すると、SWF自体のサイズが変更されるため、プレーヤにコンテンツの再描画を依頼します。しかし、この再描画によってこの醜いちらつきが生じることがあります。

解決策は、SWF DIVのサイズを変更しないで、別の空のDIVのサイズを変更しないようにして、ブラウザにスクロールバーを強制的に更新させることです。

この時点で、スクロールバーを使用すると、SWF DIVは移動しませんが(通常、フルサイズの絶対位置のFlashサイト)、単純なJSコールバックを作成してスクロール値を応用。

これははるかに大きな努力を呼ぶかもしれませんが、あまり実際はそうではありません。最後に、アプリケーションを管理するためのより柔軟な方法を作成します。

現在使用http://www.andrefelipe.com/

でそれを確認することができ、ソースコードは、私のフレームワークであるhttps://github.com/andrefelipe/fabricaframework/blob/master/src/fabrica/external/Browser.as

0

このサイトは特別なことはしません。アプリケーションの高さと幅を指定し、ページ上でスラップします。サイズ変更は行われません。単に同じテクニック(アプリの高さを指定する)を採用すれば、同じ結果が得られます。

何か不足していますか?

1

そのサイトのフラッシュコンテンツは固定サイズです。彼らがしたことは、swfファイルを中心divに配置することです。次のようなもの:

...header stuff... 
<body> 
    <div id="flashContent" style="width:960px; margin:0 auto;"> 
     ...the flash content goes here... 
    </div> 
</body> 

divコンテナの幅は、フラッシュムービーの幅にする必要があります。

あなたはフラッシュムービーのサイズを変更したい場合は、swffit

関連する問題