Actionscript работает при тестировании во flash, но не на html странице? - PullRequest
0 голосов
/ 29 февраля 2012

Я пытаюсь создать объявление для веб-сайта. Когда кто-то нажимает на объявление, оно должно перенаправлять его на веб-сайт и регистрировать этот клик в Google Analytics.

Я сделал это с помощью следующего скрипта:

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");
}

Когда я запускаю это, используя preview-> flash и нажимаю на поверхность (там, где есть большой красный квадрат с именем movieClip_3), открывается веб-страница. Однако, когда я пытаюсь опубликовать как HTML, большой красный квадрат показывает, но ничего не происходит при нажатии. Даже не console.log. Я попытался установить allowcriptaccess = всегда, но это ничего не меняет.

Можете ли вы, ребята, помочь мне? Любая помощь приветствуется.

Ответы [ 2 ]

2 голосов
/ 29 февраля 2012

Проблемы с безопасностью?

Разработчики должны проверять все URL-адреса перед передачей их этой функции.

Для локального содержимого, выполняемого в браузере, вызовы метода navigateToURL (), которые указываютпсевдопротокол "javascript:" (через объект URLRequest, передаваемый в качестве первого параметра) разрешен только в том случае, если SWF-файл и содержащая его веб-страница (если она есть) находятся в изолированной программной среде безопасности, которой доверяют локально.Некоторые браузеры не поддерживают использование протокола javascript с методом navigateToURL ().Вместо этого рассмотрите возможность использования метода call () API ExternalInterface для вызова методов JavaScript на прилагаемой HTML-странице.

source: 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',

Вы можете проверить это только на своемсервер не локально.

1 голос
/ 01 марта 2012

Я бы посоветовал дважды проверить настройки безопасности (щелкните правой кнопкой мыши флэш-контейнер-> Глобальные настройки-> Дополнительно -> Настройки надежного расположения). Также убедитесь, что ваш html-файл содержит функцию javascript, которую вы пытаетесь выполнить, и найдите заблокированные всплывающие уведомления в браузере. Может быть, вы просто не разрешаете запускать всплывающие окна.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...