首页 新闻 搜索 专区 学院

flex 手机项目

0
[待解决问题]

请问怎样让自己的软件在硬件上随着硬件方向的改变,软件也旋转。

l z q的主页 l z q | 初学一级 | 园豆:200
提问于:2011-11-29 14:57
< >
分享
所有回答(2)
0

是智能手机吗?现在的智能手机都内置的有传感器,如Android系统的手机当手机由横屏切换为竖屏时会调用

onConfigurationChanged事件,可以通过下面的代码来判断是横屏还是竖屏,然后做相应的改变:
        @Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
// 横屏
} else if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
// 竖屏
}
}

一般当手机由横屏切换为竖屏时屏幕上内容会重绘。

如果不是智能手机就不知道怎么处理了

artwl | 园豆:16526 (专家六级) | 2011-11-29 15:08

谢谢,是智能手机,你说的这种可以,但现在我想的是用的Flex 做

支持(0) 反对(0) l z q | 园豆:200 (初学一级) | 2011-11-29 15:17
0

如果是air的话,stage有orientationChange和orientationChanging事件

Greatest | 园豆:678 (小虾三级) | 2011-11-29 15:18

我写了stage 通过事件来监听它但报错了,不知道咋做你能过我一下代码吗?

支持(0) 反对(0) l z q | 园豆:200 (初学一级) | 2011-11-29 15:20

@l z q: 编译错还是运行错,什么错?

支持(0) 反对(0) Greatest | 园豆:678 (小虾三级) | 2011-11-29 15:36

编译的时候

支持(0) 反对(0) l z q | 园豆:200 (初学一级) | 2011-11-29 15:52

编译的时候报:

此行的多个标记:
-1120: 访问的属性 onOrientationChanging 未定义。
-1120: 访问的属性 stage 未定义。

 

代码:

<?xml version="1.0" encoding="utf-8"?>
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009"
        xmlns:s="library://ns.adobe.com/flex/spark"
        title="主页视图">
    <fx:Declarations>
        <!-- 将非可视元素(例如服务、值对象)放在此处 -->
    </fx:Declarations>
    <fx:Script>
        <![CDATA[
            import mx.states.State;
            
            stage.addEventListener(StageOrientationEvent.ORIENTATION_CHANGE, onOrientationChanging);
            
            public function onOrientationChanging( event:StageOrientationEvent ):void  
            {  
                // If the stage is about to move to an orientation we don't support, lets prevent it  
                // from changing to that stage orientation.  
                if(event.afterOrientation ==  
                    StageOrientation.ROTATED_LEFT || event.afterOrientation ==  
                    StageOrientation.ROTATED_RIGHT )  
                    event.preventDefault();  
            }
        ]]>
    </fx:Script>
</s:View>

支持(0) 反对(0) l z q | 园豆:200 (初学一级) | 2011-11-29 15:53

@l z q: 首先要确定是air工程,只有air才有这个事件。

然后下载最新的playerglobal.swc:http://www.adobe.com/support/flashplayer/downloads.html
安装方法:
1.改名成playerglobal.swc
2.复制到\frameworks\libs\player\11.0
3.在flashdeveloper中ProjectPropertiesActionScript Compiler设置flash版本为11

 

还有在<fx:Script>标记内只能定义函数之类的,不能直接写代码。

支持(0) 反对(0) Greatest | 园豆:678 (小虾三级) | 2011-11-29 16:29
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册