scaleform mobile sdk for android 多點觸摸 修正

來源:互聯網
上載者:User

標籤:android   style   blog   io   color   os   sp   java   for   

修正 scaleform 的多點觸控 (隨手一記 給後來的人做個參考)

scaleform 版本號碼 4.2.24 (估計這就是最後一個 移動版的版本了,萬年沒有更新了)

開始 一直以為 scaleform 沒有做  多點觸控 和 手勢 。其實 都已經封裝好了。只是PC端的模擬器不支援。(調試 比較蛋疼只能 用真機了)

但是在用的時候發現 TouchEvent.Begin  有問題 只能擷取第一個點擊點,和第一個抬起點,move 操作可以正常擷取。

如果不修改 代碼的話  完全可以用 通過監聽 move 來做操作的 但是 總是感覺 不爽。(這個 每次 點擊 都會緊跟一個 move 操作,不知道是 bug , 還是因為螢幕ppi 太高的原因)

問題很好解決 找到 MainActivity.java 檔案的最後 幾行

for (int i = 0; i < p_count; i++){
  int action_id = action%256; //就是這一行  if (Debug.ENABLED && action != 2)   {     Log.d("GFxPlayer", " PointerIds: " + " " + event.getPointerId(i) + "Action: "+Integer.toString(action)
      + " ID: "+Integer.toString(action_id) );   }  NativeOnTouch(event.getPointerId(i), action_id, event.getX(i), event.getY(i));}


android 在 多點觸控的時候 這個 action 值 是不定的。但是很有規律,(我android一竅不通,不清楚為何這個樣子),在只有一個點擊點是  action = 0;

當有兩個點擊點是 會變成 261(256 + 5 + 0 )  , 當有3 個點擊點時 會變成517 (512 + 5 + 0) 依次類推 。 具體的其他規律 想摸索可以自己 列印出來看看。

知道啥意思的 也請多多指教。其實本應該將 261 轉成 0 , 517 轉成 0 的 , 但是 我發現他在  Platform_Android_GL.cpp 檔案中對 TouchEvents[] 的 5,6,7 同樣設定了 GFx::Event::TouchBegin, GFx::Event::TouchEnd, GFx::Event::TouchMove}; 這樣就不用必須 轉成 0 1 2,轉成 5,6,7 也是可以的。 

 

之後就可以在 AS3 中 通過 如下代碼來進行 操作了。 

 Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT; 

 stage.addEventListener(TouchEvent.TOUCH_BEGIN,onTouchBegin); 

 

 

尾巴:

最近在搞 scaleform 的 平滑移動 , 毫無頭緒中 , 幾個線程完全看暈。有知道怎麼解決求指教啊。

我自己認為 scaleform 出現 移動不平滑的原因是:

1.每次  drawFrame 的時間 不等長 , 導致 指教用 ENTER_FRAME 進行刷幀 ( x + speed ) 不平穩。

delta 這個時間差 無法 在程式中 直接擷取。

2.由於線程 間 相互注入 導致 在執行完 Advance 方法後 未必 一定會進行 draw , 導致到 物體移動不規律。

 

scaleform mobile sdk for android 多點觸摸 修正

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.