2014-10-17 107 views
1

我使用HaxeFlixel和原生版本製作了一個簡單而小巧的應用程序。該窗口無法調整大小或甚至移動,因爲我在project.xml中將其設置爲無邊框。如何移動無邊框窗口?

現在移動此窗口的唯一方法是掛鉤到mouseMove事件並相應地設置窗口的位置。第一個聽起來很簡單,但後者讓我感到困擾。我一直在尋找Haxe API,OpenFL API和Haxelib,但是我找不到任何可以移動窗口的東西。

這裏的時鐘:

回答

0

我做了這個項目的基礎上,功能Lib.application.window.move(x, y);

https://github.com/RafaelOliveira/MoveOpenFlWindow

這不是很順利,我試圖改善這一點,但它的工作。

+0

我在Mac上測試了你的代碼,它工作起來真的很麻煩,但是窗口移動了:)現在我需要測試它與haxeFlixel的對比,謝謝! – Zielak 2014-10-21 07:36:17

+0

我可以看到這個問題。和窗口Lib.application.window.x和.y在將它移動到新位置後始終返回0。 – Zielak 2014-10-22 07:37:36

2

我認爲這可能是使用native extension的好時機。但首先你必須弄清楚C++代碼將移動窗口,恐怕我無法幫助。如果你能弄清楚,擴展將處理剩下的事情。鏈接

快速摘要:

  1. 運行lime create extension MoveExtension
  2. 根據Lime生成的示例代碼編寫您的C++代碼。
  3. 編譯lime rebuild MoveExtension windows
  4. 在您的項目中包含輸出NDLL文件。
+0

一路上我加入的方式這對於nme本地代碼,我不知道OpenFL等api公開的狀態是什麼,但是,代碼應該在那裏https://github.com/haxenme/nme/blob/master/project/src/ common/ExternalInterface.cpp#L1600 – underscorediscovery 2014-10-18 14:17:10

0

更好的答案:

  1. 更新到OpenFL和石灰的最新版本。
  2. 添加 「-Dnext"到命令行參數(在project.xml中,這將是
    <setenv name="next" />」。)
  3. 現在你可以移動窗口:Lib.application.window.move(x, y);