كيف يمكنك التقاط أحداث الماوس في FF، عبر كائن Shockwave
-
09-06-2019 - |
سؤال
كيف يمكنك التقاط أحداث الماوس، والتحريك والنقر فوق كائن Shockwave Director (وليس الفلاش) في Firefox، عبر JavaScript.الكود يعمل في IE ولكن ليس في FF.
يعمل البرنامج النصي على نص المستند لكل من IE وMoz، ولكن لا يتم تشغيل أحداث الماوس عندما يكون الماوس فوق كائن مدير موجة الصدمة المضمن.
تحديث:
function displaycoordIE(){
window.status=event.clientX+" : " + event.clientY;
}
function displaycoordNS(e){
window.status=e.clientX+" : " + e.clientY;
}
function displaycoordMoz(e)
{
window.alert(e.clientX+" : " + e.clientY);
}
document.onmousemove = displaycoordIE;
document.onmousemove = displaycoordNS;
document.onclick = displaycoordMoz;
مجرد ملاحظة جانبية، لقد حاولت أيضًا استخدام addEventListener لـ "mousemove".
المحلول
يمكنك أيضًا التقاط حدث الماوس داخل Director (وهذا لا يفشل أبدًا) ثم استدعاء وظائف JS الخاصة بك من هناك، باستخدام gotoNetPage "javascript:function('" & الوسيطة & "')"
على سبيل المثال:
on mouseDown me
gotoNetPage "javascript:function('" & argument & "')"
end
يعد اكتشاف حركة الماوس أكثر تعقيدًا بعض الشيء، حيث لا يوجد مثل هذا الحدث في اللغة، ولكن يمكنك استخدام:
property pMouseLock
on beginsprite
pMouseLock = _mouse.mouseLock
end
on exitFrame
if _mouse.mouseLock <> pMouseLock then
gotoNetPage "javascript:function('" & argument & "')"
pMouseLock = _mouse.mouseLock
end if
end
يعتبر
نصائح أخرى
مجرد فكرة.
حاول تراكب كائن موجة الصدمة باستخدام div بدرجة عتامة 0، ثم يمكنك التقاط الأحداث على div نفسه.