2010-03-22 1 views
0

Я ищу хороший способ по предотвращению ссылки в моем рельсах приложение, имеющих какой-либо эффект в то время как SWF-файл активен ...Rails: как предотвратить ссылки от того нажата во время SWF флэш-файл отображается

Может Я делаю это с помощью before_filter? Или мне нужен javascript?

Markus

ответ

0

Вам нужно будет использовать JavaScript для этого, но если вы используете библиотеку, таких как JQuery, это легко Peasy.

Вы можете просто создать переменную JS после загрузки вашего контента вспышки, а затем:

$("a#click").onclick = function() { return false; } 

Это отключит все ссылки на этой странице.

Для повторного включения, просто:

$("a#click").onclick = function() { return true; } 

И все ссылки будут повторно включить снова. очевидно, вам понадобится ввести некоторую логику для включения и отключения ссылок, но основой для этого (мой собственный подход) являются, как описано выше.

Надеется, что это помогает вам

UPDATE

Как вы упомянули вы не имеете большой опыта работы с JQuery или JavaScript, я написал пример, который будет делать это еще лучше.

Вместо того, чтобы отключать ссылки (что не очень удобно), почему бы вам просто не скрыть их?

Я поставил пример этого here:, но код будет делать что-то вроде:

function changeLinks(mode){ 
    if(mode == "enable"){ 
     alert("links enabled") 
     $("a").toggle(); 
    } 
    else{ 
     alert("links disabled") 
     $("a").toggle(); 
    } 
} 

Чтобы добавить Jquery на страницу, это просто, как:

<script class="jsbin" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 

И есть большое введение в jQuery с Rails here

+0

Привет, mplacona, спасибо за ваш ответ, но я пока не понял. Что такое jQuery и как его включить? Где я могу поместить этот код? и это # ​​щелкните переменную имени или что? Как вы видите, я очень новичок в javascript ... – Markus

+0

jQuery - это библиотека JavaScript, такая же, как Scriptaculous, Dojo и т. Д. Там есть отличное введение в интеграцию с проектом железной дороги по этой ссылке: http://jimneath.org/2008/06/18/using-jquery -с-рубин-на-рельсы / –

0

@ Ответ mplacona в порядке, но вопрос в том, КАК вы получите эти функции, называемые, когда ваш SW F деактивируется. Если у вас есть доступ к источнику Flash, который создал SWF, вам нужно вызвать функции с помощью ExternalInterface, но я не могу быстро найти, как обнаружить, когда Stage был сделан невидимым (это обработчик событий на сцене, наверняка). Тем не менее, вы, несомненно, делаете это в ActionScript, поэтому, когда вы вызываете закрытие, вы также можете вызвать метод ExternalInterface, который вызывает JavaScript-активирующий ссылку.

Вы бы использовать что-то вроде этого:

ExternalInterface.call('changeLinks', 'enable');

в вашем ActionScript.

Надеюсь, что несколько помогает.