Мне записали приложение флэш-памяти в сценарии 2 действия, и однажды он выполняет несколько последовательных запросов JavaScript с помощью getUrl ().
Они должны быть сделаны как отдельные запросы, потому что IE имел предел на длину единственного запроса и перестал работать тихо, если тот предел передается.
Когда когда-либо это происходит, если пользователю включили их звук существует заграждение "щелчка щелчка щелчка".
Здесь найдено связанное решение: http://www.julienlecomte.net/blog/2007/11/30/ Вкратце, вместо этого:
iframe.src = "...";
Вы делаете это:
var newIFrame = document.createElement("iframe");
newIFrame.src = "...";
iframe.parentNode.replaceChild(newIframe, iframe);
Можно ли загружать внешние объекты с помощью таких методов DOM? Разве нет моста между flash и JavaScript, чтобы вы могли вызвать некоторую JS-функцию из своего Flash-скрипта? Это своего рода кладж, но может сработать.
Вы можете изменить звук Windows «Начать навигацию» на «Нет». Это отключит звук щелчка.
Меня это тоже мучило целую вечность. Насколько я знаю, делать нечего: /
Но я рад, что вас поправили!
J
Забудьте об этом, глупый дизайн браузера не исправить. MS предпочитает раздражать своих пользователей, это их проблема, а не ваша. Если вы исправите это за них, вы только лишите их стимула исправлять это там, где это должно быть исправлено.
Пользователи, которых это раздражает, должны найти путь к настройкам звука.
Я не знаком с выражением "обратный вызов". Можете ли вы уточнить, что должны делать эти вызовы?
Если вы имеете в виду, что вызываете JS-функции из AS, и вам нужно использовать несколько вызовов getUrl
, потому что вы хотите передать больше информации, чем IE может обрабатывать в одном запросе (в котором вы скрываете свои JS-вызовы), тогда почему бы вам не использовать ExternalInterface
? Если не ошибаюсь, эта функция была в AS2 и не должна создавать шума :-).
JavaScript:
<script language="JavaScript">
function alertUser(message) {
alert(message);
return true;
}
</script>
ActionScript:
import flash.external.ExternalInterface;
ExternalInterface.call("alertUser", "hello");
Я предполагаю, что проблема в объеме информации, которую вы хотите передать JS. В противном случае вы могли бы просто написать функцию-оболочку JS и вызвать ее, используя следующее:
getURL("javascript:myWrapper();");
И вы получите только один щелчок.