0

フラッシュ イントロがあり<body>、イントロが完了した直後にロードする必要があります。どうやってやるの?

アニメーションが完了した後に新しい URL にリダイレクトするのではなく、同じページにリダイレクトしたい。

jqueryコードがキャッチするactionscript3を使用して変数を返すことはできますか、それともjQuery自体がアニメーションの完了を検出できますか?

4

2 に答える 2

1

1) Flash の導入: 特に多くのユーザーが Flash を搭載していないか、Flash を完全に無効にしているデバイスでネットサーフィンをしているため、悪い習慣です。また、Flash は検索エンジンの結果を完全に破壊します。1 番目の推奨事項: HTML5/CSS3 でアニメーションを作成する方法を学ぶ必要がありますが、導入画面は一般的にユーザビリティに非常に有害です。それらを使用する唯一の本当の言い訳は、アセット (ゲームの画像スプライトやダッシュボードのデータなど) をフロントロードしようとしている場合に、何らかのフィードバックをユーザーに提供することです。

2) ページの前に Flash をロードすることはできません<body>。うまくいきません。ただし、それを考えると、次のような構造をまとめることができます。

<body>
    <div id="flashObj"><!-- object for Flash --></div>
    <div id="mainContent"><!-- rest of your page --></div>
</body>

次に、ExternalInterface オブジェクトを使用して、Flash アニメーションの最後から JavaScript 関数を呼び出すことができます (チュートリアルについては、 http://www.kirupa.com/flash/calling_javascript_flash_using_as3.htmを参照してください)。そのオブジェクトに問題があるため、クロスプラットフォームの使いやすさはさらに低下します。

基本的に、html には次のように記述します。

<style>
    #mainContent { display:none; }
</style>

<script type="text/javascript">
    function startMainContent(){
        var flash = document.getElementById("flashObj");
        var main  = document.getElementById("mainContent");
        if(flash && main){
            flash.style.display == "none";
            main.style.display == "block";
        }
    }
</script>

次に、ActionScript で、アニメーションが完了したら、次のようなものを追加します。

ExternalInterface.call("startMainContent()");

ExternalInterface が正しく機能していて<object />、Flash オブジェクトから Javascript へのアクセスを有効にするためにタグに適切なフラグを設定するための Adob​​e のドキュメントに従っていると仮定すると、うまくいくはずです。

ExternalInterface の公式アドビ ガイドについては、次を参照してください。

于 2012-10-25T13:29:11.623 に答える
-1

ねえ、私はこの質問に愚かな方法で答えて私を笑っていますが、あなたはこの方法でそれを行うことができます. イントロが何秒かかるか知ってる?はいの場合は、次のようにします。イントロが 10 秒だとします。

$(document).ready( function() {
$("INTRO_DIV").delay(10000).hide();
$("body").delay(10500).fadeIn();
});

あなたのイントロがきちんと終わるように、500 ミリ秒追加しました。

于 2012-10-25T15:36:45.717 に答える