簡體   English   中英

如何使flex只使用鼠標滾動和鍵盤事件有用,否則將其傳遞給瀏覽器?

[英]How do I make flex only consume mouse scroll and keyboard events when it's useful, and otherwise pass it on to the browser?

這個曾經困擾過我一段時間。 當我使用鼠標滾輪在網頁中向上和向下滾動,並且閃光電影進入光標的路徑時,滾輪停止工作。 此外,當Flash影片具有焦點時,您無法使用Ctrl + LCtrl + R等瀏覽器快捷方式。

我現在正在編寫一個flex應用程序,我想找到一個解決方案,這樣至少我的用戶不會受到這種用戶界面行為不一致的困擾。

我認為有一種方法可以告訴flash將鼠標滾輪和鍵盤輸入等事件傳播回瀏覽器,除非它們出現在它們有用的元素中,例如在flex textarea中。 我找不到任何解決方案,甚至沒有人在談論它。

具體來說,我該如何做到:

  • 當用戶使用鼠標滾動時,除非鼠標位於具有滾動條的Flex容器或要滾動的其他組件上,否則瀏覽器將滾動。
  • 當用戶按下鍵盤上的按鈕或按鈕組合時,除非有活動的鍵盤監聽器,或者光標位於文本字段中,否則它將傳播到瀏覽器。

瀏覽器和閃存之間的通信是通過ExternalInterface完成的。 ExternalInterface允許您從JavaScript調用ActionScript方法,反之亦然。

祝你好運,因為經驗表明處理鍵盤快捷鍵和瀏覽器不穩定往往很痛苦

我遇到了同樣的問題。 但是,如果你已經在flex中構建了一個復雜的UI,那么我選擇的解決方案需要進行大量更改。

使用HTML創建用戶界面,並通過javascript與隱藏的flex(或flash)對象進行通信。

例如,將要在flex textarea中顯示的任何字符串作為ExternalInterface調用中的參數傳遞。 然后在常規<textarea> html標記中顯示該字符串。

這個策略對我的項目很有用

當您在閃光燈內部時,添加一個將在閃光燈內部處理的事件。外部接口禁用滾動並獲得閃光燈聚焦。

當你走出閃光燈時,你仍然可以觸發事件仍然調用外部界面來獲得焦點到瀏覽器並停止閃光滾動。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM