默认情况下,当您遇到断点时,Eclipse会自动切换到Debug透视图.
但是,在终止进程时,它不会自动切换回先前的透视图(比如Java),这让我很烦.
它只是保持在调试透视图中,即使没有任何东西可以调试,因为没有任何东西在运行.
作为Java世界中的一个相对新手,我发现很多事情令人沮丧地完成,在许多其他框架中相对微不足道.一个主要的例子是异步http请求的简单解决方案.看起来似乎并不存在,最好的方法是什么?使用像httpclient这样的阻塞类型的lib或内置的java http东西来创建我自己的线程,或者我应该使用更新的非阻塞io java东西 - 对于应该简单的东西来说似乎特别复杂.
我正在寻找的是从开发人员的角度来看易于使用的东西 - 类似于AS3中的URLLoader - 您只需创建一个URLRequest - 附加一堆事件处理程序来处理完成,错误,进度等,并调用一种解雇它的方法.
如果您不熟悉AS3中的URLLoader,它非常简单,看起来像这样:
private void getURL(String url)
{
URLLoader loader = new URLLoader();
loader.addEventListener(Event.Complete, completeHandler);
loader.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
loader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
URLRequest request = new URLRequest(url);
// fire it off - this is asynchronous so we handle
// completion with event handlers
loader.load(request);
}
private void completeHandler(Event event)
{
URLLoader loader = (URLLoader)event.target;
Object results = loader.data;
// process results
}
private void httpStatusHandler(Event event)
{
// check status code
}
private …Run Code Online (Sandbox Code Playgroud) 所以我有一个Application Sandbox HTMLLoader对象,我在AIR中创建它只是想从JavaScript调用ActionScript方法.在Flash中,这是通过我们可靠的ExternalInterface.addCallback()函数实现的.然而在AIR中,事情有点不同,我似乎无法让它发挥作用.
以下是我项目的简要概述:
我的AIR(ActionScript)主要:
public class Main extends Sprite {
public var _as3Var:String = "testing";
public function as3Function():void
{
trace("as3Function called from Javascript");
}
public function Main() {
NativeApplication.nativeApplication.addEventListener(InvokeEvent.INVOKE, onInvoke);
}
protected function onInvoke(e:InvokeEvent):void {
NativeApplication.nativeApplication.removeEventListener(InvokeEvent.INVOKE, onInvoke );
var app = new App();
addChild(app);
app.init(new ExternalContainer(), e.currentDirectory, e.arguments);
}
}
Run Code Online (Sandbox Code Playgroud)
这就是我创建HTMLLoader对象的方法:
{
_html = new HTMLLoader();
_html.useCache = false;
_html.runtimeApplicationDomain = ApplicationDomain.currentDomain;
_html.load(new URLRequest("sandbox/AirRoot.html"));
_html.width = 800;
_html.height = 600;
App.ref.addChild(_html); …Run Code Online (Sandbox Code Playgroud) 要求:
这不适用于游戏,但我不反对使用游戏类型API.
一些想法:
Qt可能太重了,但我不熟悉API以了解它是否符合要求.我对Qts窗口管理(没有窗口)或窗口小部件/控件集不感兴趣,因为它不适用于桌面类型的应用程序.另外,我不确定Qt是否有动画框架?想到这里?
最有可能的是构建在OpenGL之上的框架.我只是不知道这样的事情是否存在.另外,我不清楚OpenGL中的2D图形.2D图形是真正的2D还是仅仅是在面向2D的平面上绘制的3D对象?
WPF是针对DirectX的_____________是OpenGL
如果空白可以填补,这是我正在寻找的.
更新#2
我本周末花了一些时间和Qt一起发现了QGraphicsScene类 - 它似乎是Qt 2D保留类型图形模式的基础类 - 而QGraphicsWidget允许QWidget类的一些自动布局功能.
Qt接近通过我的试金石.最后要弄清楚的是,在处理Vector图像时,开发人员工作流程是一个优秀的设计师,即如何在Illustrator中创建一个图标并将其转换为QGraphicsItem-这可能是一个新的(更集中)的好候选人题.
我很难找到任何关于 DOM 元素模糊时“假设”会发生什么的文档。
我幼稚的假设是浏览器会遍历 DOM 以找到下一个可聚焦的元素 - 但鉴于以下 jsfiddle,这显然不是会发生的情况。
<!-- HTML ----------------------------- -->
<body>
<div id="root" tabindex="0">root
<div id="p1" tabindex="0">p1
<div id="p2" tabindex="0">p2
</div>
</div>
</div>
</body>
/* Javascript */
var root = document.getElementById("root");
var p1 = document.getElementById("p1");
var p2 = document.getElementById("p2");
root.addEventListener('keydown', function(event) {
console.log("root keydown");
}, false);
p1.addEventListener('keydown', function(event) {
console.log("p1 keydown");
}, false);
p2.addEventListener('keydown', function(event) {
console.log("p2 keydown - blurring p2, hoping that focus will move up the dom to p1");
event.stopPropagation();
p2.blur();
if (document.activeElement !== …Run Code Online (Sandbox Code Playgroud) actionscript ×1
air ×1
dom ×1
dom-events ×1
eclipse ×1
html ×1
http ×1
java ×1
javascript ×1
onblur ×1
opengl ×1
qt ×1
wpf ×1