2012-02-29 23 views
0

ウェブサイトの広告を作成しようとしています。誰かが広告をクリックすると、その広告がウェブサイトにリダイレクトされ、そのクリックをGoogleアナリティクスに登録することになっています。ActionscriptはFlashでテストしたときに動作しますが、htmlページでは動作しません。

私は次のスクリプトでこれを行っている:(movieClip_3と呼ばれる大きな赤い四角がある場合)、私はpreview->フラッシュを使用して、これを実行すると、私は表面上でクリックすると

import flash.external.ExternalInterface; 

movieClip_3.addEventListener(MouseEvent.CLICK, onClick); 

function onClick(event:MouseEvent):void { 

    trace("hi"); 

    ExternalInterface.call("console.log", "test"); 
    //ExternalInterface.call("_gaq._trackPageview", "/vpv/annoncer/[firmanavn.dk]"); 

    navigateToURL(new URLRequest("http://www.google.com"), "_blank"); 
} 

それが開きますウェブページ。しかし、私がhtmlとして公開しようとすると、大きな赤い四角形が表示されますが、クリックすると何も起こりません。 console.logもありません。 allowscriptaccess = alwaysを設定しようとしましたが、何も変更されません。

あなたは私を助けることができますか?どんな助けもありがとうございます。

+0

'ExternalInterface.call(" function(){console.log( 'test')})) 'は動作しますか? – inhan

+0

'ExternalInterface.call(" javascript:console.log "' – mgraph

+0

"hi"がトレースされていますか? – Manish

答えて

2

セキュリティ上の問題?

開発者はこの 機能にすべてのURLを渡す前に検証する必要があります。のみSWFファイル 場合に許可される(最初のパラメータとして渡されたURLRequest オブジェクトを介して)擬似プロトコル:ブラウザで実行されるローカルコンテンツでは

は、「JavaScriptを」指定のnavigateToURL()メソッドの呼び出し 含まれているWebページ(存在する場合)はローカルの信頼できるセキュリティサンドボックスにあります。一部のブラウザでは、navigateToURL()メソッドで JavaScriptプロトコルを使用することはサポートされていません。代わりに、 をExternalInterface APIのcall()メソッドを使用して、囲むHTMLページ内の JavaScriptメソッドを呼び出すことを検討してください。

ソース:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/package.html#navigateToURL()

EDIT: JavaScriptはサンドボックスの外に許可されていないので、あなたがExternalInterfaceで試すことができます。

公開用パラメータで
ExternalInterface.call("javascript_functionname", "mypage.html"); 

'allowScriptAccess', 'always', 

これはサーバー上でのみローカルではテストできません。

+0

私は、これをサポートする必要があるクロームでこれをテストしていますか?navigateToUrl関数は、IDEが提供する標準スニペットの一部です。Should'ntそれはサポートされますか?:/ – Troels

1

セキュリティ設定をダブルクリックすることをお勧めします(フラッシュコンテナを右クリック - >グローバル設定 - >高度 - >信頼できる場所の設定)。また、HTMLファイルに、実行しようとしているjavascript関数が含まれていることを確認し、ブラウザーでブロックされたポップアップ通知を探します。ポップアップを実行できないようにするだけかもしれません。

関連する問題