2012-02-23 17 views
0

私はFlashでこのようなことが比較的新しいので、説明が不足していると本当に申し訳ありません。完全に私がやっていることで、ソリューションに貼り付けるのではなく、私は学ぶことができます。動画バナーをサードパーティのコンポーネントとビデオでオーバーレイする

私が作成しようとしているのは小さなアニメーションバナーです。このアニメーションバナーをクリックすると、ウェブページのコンテンツをカバーし、ビデオプレーヤーを含む半透明のオーバーレイ(LightBoxに似ています。今後、これらの要素を「バナー」と「オーバーレイ」と呼ぶことにします。オーバーレイとバナーは別々の.swfファイルに含まれています。

バナーは比較的複雑で、読み込み時のアニメーションではアイドル時にループアニメーションが再生され、mouseOverでは別のアニメーションが再生されます。バナーをクリックするか、mouseOverアニメーションを完了すると、オーバーレイが起動します。私はjQuery Lightboxを呼び出す作業バージョンを用意しましたが、他のサードパーティコンポーネントを使用してその機能を構築するよう依頼され、バナーのアニメーションとインタラクティブ機能が壊れています。

これは、バナーファイル内のActionScriptです。

import flash.external.ExternalInterface; 
import flash.events.MouseEvent; 
import flash.events.Event; 

stop(); 

curl_mc.alpha = 0; 

curl_mc.stop(); 

hotspot_mc.useHandCursor = true; 
hotspot_mc.buttonMode = true; 

hotspot_mc.addEventListener(MouseEvent.ROLL_OVER, onLoopRollover, false, 0, true); 
hotspot_mc.addEventListener(MouseEvent.ROLL_OUT, onLoopRollout, false, 0, true); 

hotspot_mc.addEventListener(MouseEvent.CLICK, screenad.shared.callMethod("launchLayer")); 
curl_mc.addEventListener('curlComplete', screenad.shared.callMethod("launchLayer")); 

function onLoopRollover(e:MouseEvent):void 
{ 
    loop_mc.alpha = 0; 
    loop_mc.stop(); 

    curl_mc.alpha = 1; 
    curl_mc.gotoAndPlay(1); 
} 

function onLoopRollout(e:MouseEvent):void 
{ 
    loop_mc.alpha = 1; 
    loop_mc.gotoAndPlay(1); 

    curl_mc.alpha = 0; 
    curl_mc.stop(); 
} 

ここにオーバーレイファイルのActionScriptがあります。

screenad.hide(); 

screenad.shared.'showAd' = function() 
{ 
    screenad.show; 
} 

これらは、コンポーネントのサポートチームによって私に提案された変更を反映しますが、オーバーレイを起動する対話があるとして、バナーのアニメーションがまだ壊れています。

答えて

0

この問題を解決するには、HTML + Flashが必要です。

おそらく私はフラッシュオブジェクトを分離する必要があります。

バナーとビデオ。

バナーは簡単にアニメーション化されたコンポーネントを一度クリックするだけで、ページ全体にHTMLオーバーレイを配置し、その中にFlashビデオコンポーネントを読み込むことができます。

ExternalInterfaceクラス経由でFlash - > Javascript経由で通信できます。

例えば:

AS3

if(ExternalInterface.isAvailable) 
{ 
    ExternalInterface.call("loadOverlayVideo","4") 
} 

Javascriptを

function loadOverlayVideo(videoId) 
{ 
    showBlahBlah() 
} 

注:お使いの関数はjQueryの組み込み関数内であれば、使用して機能を "外部化" する必要があるかもしれません:

window.loadOverlayVideo = loadOverlayVideo 

そうでなければフラッシュは、それが

必ず各機能で設定可能なパラメータを使用してください、あなたが好きなだけ時間を使用するには、本当に再利用可能なコンポーネントを取得します見つけることができません。

希望すると助かります!

関連する問題