[問題] win8.1 的行動程式滑鼠無效 (已解決)
從程式碼本身已找到解決方式
簡單來說
因為程式本身需要multitouch的功能,所以將
Starling.multitouchEnabled = true;
在windows 8上本機執行mobile程式需要先改為false
找到的原因在這裡
在starling.core.Starling.as中,在初始化有一段程式是將Touch與Mouse的事件
都轉換成Starling相對應的輸入事件
所以他在註冊Touch與Mouse事件時,把Mouse的部分擋了下來
可以參考同一隻as的touchEventTypes部分
private function get touchEventTypes():Array
{
var types:Array = [];
if (multitouchEnabled)
types.push(TouchEvent.TOUCH_BEGIN, TouchEvent.TOUCH_MOVE,
TouchEvent.TOUCH_END);
if (!multitouchEnabled || Mouse.supportsCursor)
types.push(MouseEvent.MOUSE_DOWN, MouseEvent.MOUSE_MOVE,
MouseEvent.MOUSE_UP);
return types;
}
原本在windows7上,Mouse.supportsCursor這個變數是true自然沒問題
但到了windows8上,這個值就變成false (我的螢幕也沒觸控功能)
所以在本機測試的時候,就必須要先把multitouchEnabled先改為false
在windows8上才會正常
另外在下述的問題有參考到一個網址,提到的問題其實也有一點相關
似乎在WIN8 & AIR3.8下,Mouse事件是沒有辦法正常回應
但這跟我的問題沒太大關係,我本身也沒測試過
但有類似情況的也可以試試
==========================================================
以下是原本問題的部分
==========================================================
這陣子我把開發的機器從windows7升級為windows 8.1
開發工具為flash builder 4.7 + AIR SDK 4.0 + starling framework + feather UI
專案為mobile actionscript project
原本win7在使用air emulator本機執行測試都可以用滑鼠正常操作
自從升級到win8.1之後使用滑鼠操作就沒有任何反應
已測試的元件是starling button的trigger及feather的list都是這樣
我想其它的也是一樣的情況
另外,我有試著更換AIR SDK,我換過3.7、3.4都是一樣的情況
但是使用觸控螢幕的話是可以正常操作的
問題是我主要開發的電腦沒有觸控螢幕,無法單機測試非常不方便
難道是win8的adobe air把滑鼠跟觸控的反應分開了嗎
以至於我在行動專案的程式無法使用滑鼠只能用觸控的方式操作
網路上有看到這篇air3.8的bug報告
https://bugbase.adobe.com/index.cfm?event=bug&id=3635216
但我已試著更換sdk也無效,或是跟touch app plugin有關係嗎?
我本來有裝後來移掉也都不行
請問有解決的方法嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.250.105.213
※ 編輯: tainjoy 來自: 114.36.44.249 (03/08 11:19)
※ 編輯: tainjoy 來自: 114.36.44.249 (03/08 11:20)
※ 編輯: tainjoy 來自: 114.36.44.249 (03/08 11:33)
Flash 近期熱門文章
PTT數位生活區 即時熱門文章