[新闻资讯] [Flash/Flex] 走自己的路:重写AIR移动应用程序中的BACK按键

[url]http://bbs.9ria.com/viewthread.php?tid=85681&extra=page%3D1%26amp%3Borderby%3Ddateline%26amp%3Bfilter%3D2592000[/url]


我正在我的RunPee移动应用程序开发中使用AIR和Flex4.5. Hero。我非常喜欢Hero。它有它的优缺点,但总体上看,它是值得在上面进行快速开发的。这种观点一致持续到我开始在我的两个视图间添加自定义过渡。
这里有一个应用程序的导航布局- 到目前为止。


Hero默认的视图间的过渡是:通过navigator.pushView( NextView ),当进行视图过渡时,下一个视图从右侧滑入; 然后,当你设置了navigator.popView()或者用户点击了back-key,过渡将是新屏幕从左侧滑入。这样对向前和向后的过渡很有用。如果这是你所需要的全部那么你就可以这样设置。

但是从我的导航布局图中您可以看到,我希望有些屏幕是从上面或者下面滑入。这可以很容易的通过自定义过渡来实现。当用户点击后退键时问题来了,因为默认的过渡是左右滑动。
这似乎没有破坏应用程序和其他什么。但是我不想让一个屏幕从上面滑入,而当返回时屏幕却是从左面滑入。对我来说这是一个很不好的用户体验,我无法忍受它。
如果Hero能过捕捉一个视图的过渡并在返回时采用相反的过渡,那么这是很好的。不过,它不能这样做,所以,我们必须自己来处理它。幸运的是它是很容易做的。
在你的View 标签里对backKeyPressed设置一个监听器,如下:
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark" title="Timer"
backKeyPressed="onBackKeyPressed( event )">
它的处理将是这样的:
private function onBackKeyPressed( e:FlexEvent ):void {
e.preventDefault();

var transition = new SlideViewTransition();
transition.direction = ViewTransitionDirection.UP;
transition.mode = SlideViewTransitionMode.PUSH;
navigator.popView( transition );
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值