2011-09-07 45 views
1

我任务是执行d-pad导航为GoogleTV的现有Web应用程序(我在谷歌浏览器的测试,到目前为止,他们似乎同样操作。In their notes实现d垫导航他们有基本的处理程序上,右,left,down and select。D-pad导航 - 数据结构和编程?

目前我有一个方案来初始化一个虚拟光标,然后用于各种dpad笔画,我依靠使用document.elementFromPoint()并循环直到找到一个先前未被选中的新元素。我正在使用outline: css指示当前位置,并且我只在其中一个dpad控件已被选中时才显示它。

我有一个初始化步骤将类dpadClickable添加到所有可点击的项目,然后当光标移动时,我已将dpadHighlighted添加到新项目并从所有其他元素中移除。它看起来不错。

这一切,如果我有这是滚动的,或者如果定向使得向下移动我的观点觉得没有什么元素失败。

我想要的是一个数据结构,以保持我所有的dpadClickable项目,然后在d-pad点击,能够迭代它找到最好的最接近的上,下,左,右元素。喜欢,我应该这样做基于topleft属性?或基于计算的中心点?

我发现了一个jQuery library哪种类型的实现这一点,我就逆向工程在一定程度上。但是我真正喜欢的是这类编程问题的入门知识:我应该寻找图形编程算法吗?游戏?还有别的吗?

Page layout with blue boxes indicated selectable areas

UPDATE:问题上的User Experience StackExchange网站:Adding D-pad navigation to an existing web application: Resources?

回答

3

你看着http://code.google.com/tv/web/lib/在谷歌官方电视Java脚本扩展/库?他们可能会帮助你。

+0

http://gtv-ui-lib.googlecode.com/svn/trunk/jquery/source/js/keycontrol.js似乎有一个有趣的方法。它似乎将用户界面分成区域和行,然后您可以浏览这些区域和行。有用! – artlung