2011-05-31 68 views
1

問候!我有一個Flex 4.5移動項目正在滾動,並且我遇到了一個非常瘋狂的障礙。我正在使用StageWebView對象來呈現網頁,並將其嵌入到其餘火花布局中。我試圖給包含StageWebView的組件添加一個手勢事件,但由於StageWebView對象不屬於Flex堆棧(它繼承自EventDispatcher,而不是UIComponent),所有我的事件似乎都被吃掉了。任何基於鼠標的事件(點擊,手勢等)似乎都沒有註冊,我不知道如何繞過它。如果我使用未呈現瀏覽器的區域,則手勢事件將起作用。我如何從外部SkinnableContainer獲取手勢事件?手勢事件和StageWebView

的StageWebView參考:

http://help.adobe.com/en_US/FlashPlatform/beta/reference/actionscript/3/flash/media/StageWebView.html

UIComponent裹的StageWebView:

http://soenkerohde.com/2010/11/air-mobile-stagewebview-uicomponent/

謝謝!

+0

備註:我試圖在我的主要MXML頁面上設置全局事件,並將useCapture設置爲true。 StageWebView上發生的事件仍未被捕獲。 – 2011-05-31 19:02:02

+0

我決定在這個問題上用adobe打開一個bug:https://bugs.adobe.com/jira/browse/SDK-30564 – 2011-06-03 18:37:01

回答

0

我猜你可能有自己的電纜鋪設手勢事件,只是做一個快速的挖掘中UIComponent.as,它有這些:

[Event(name="touchInteractionStarting", type="mx.events.TouchInteractionEvent")] 
[Event(name="touchInteractionStart", type="mx.events.TouchInteractionEvent")] 
[Event(name="touchInteractionEnd", type="mx.events.TouchInteractionEvent")] 
+0

其實剛剛意識到在InteractiveObject中也有基於手勢的事件... – dain 2011-05-31 19:37:25

+0

The持有我用來呈現StageWebView的控件是UIComponent的一個實例 - 即使它定義了這些事件,事件也永遠不會引發。它需要處理來自StageWebView組件的類似事件並通過UIComponent實現傳遞。 – 2011-06-01 15:19:53

+0

嗯,我明白了,所以可能'StageWebView'吸收了所有的交互作用:(唯一的另一個想法是messier,在StageWebView的頂部有一個透明的'UIComponent'(我猜可能實際上是一個'Sprite')它會觸發簡單的交互但會捕獲手勢 – dain 2011-06-01 15:29:36

0

這是不是一個錯誤,從我的理解在任何鼠標交互stagewebview意味着與當前加載的html的交互。你應該捕獲那裏的事件並將其觸發回swf。

當然有一些jQuery插件或有手勢幫助實現的插件。 雖然你不能覆蓋他們的東西,但它有點令人失望。