Starling常见问题解决办法

来自:智慧 + 毅力 = 无所不能

1、Android设备上阻止用户按下后退后的行为

侦听按键事件

//阻止后退行为
view.stage.addEventListener(KeyboardEvent.KEY_UP,keyboardHandler);
/**
* 当用户按下后退,强制程序关闭
*/
protected function keyboardHandler(event:KeyboardEvent):void
{if(event.keyCode == Keyboard.BACK){event.preventDefault();event.stopPropagation();NativeApplication.nativeApplication.exit();}
}

2、怎么让程序只能横着,不能竖着。但是可以翻转

首先在XML设置中,不要启动landscape模式,就是像下面这样注释掉就可以:

<!--<aspectRatio>landscape</aspectRatio>-->

然后打开允许自动翻转:

<autoOrients>true</autoOrients>

然后在应用启动之后,用代码设置为横屏模式:

stage.setOrientation(StageOrientation.ROTATED_LEFT);

然后侦听屏幕翻转事件,阻止不需要的模式:

//only support landscape mode
stage.addEventListener(StageOrientationEvent.ORIENTATION_CHANGING, onOrientationChanging );
/**only support landscape mode*/
private 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.UPSIDE_DOWN || event.afterOrientation == StageOrientation.DEFAULT ) event.preventDefault();
}

Starling屏幕自适应方法
参考连接:
http://www.starlinglib.com/wiki/StarlingManual:%E5%A4%9A%E5%B1%8F%E5%B9%95%E5%88%86%E8%BE%A8%E7%8E%87%E7%9A%84%E5%BC%80%E5%8F%91
1>首先获得手机屏幕的宽高,也就是你要显示的范围的大小
//竖屏
//                private var screenWidth:int  = stage.fullScreenWidth;  
//                private var screenHeight:int = stage.fullScreenHeight;        
//横屏
        private var screenWidth:int  = stage.fullScreenHeight;  
        private var screenHeight:int = stage.fullScreenWidth;
注意的是横屏和竖屏宽高赋值要调转
2>获得1个长方形的显示空间的对象
private var viewPort:Rectangle = new Rectangle(0, 0, screenWidth, screenHeight)
把要显示的starling初始化时候把长方形对象插入到第三个参数
  myStarling = new Starling(MainGame,stage,viewPort);
设置starling中要显示画面的大小
                        myStarling.stage.stageWidth  = 480;
                  myStarling.stage.stageHeight = 320;
完成!

3、两个手机应用可以互相调用吗

在使用Adobe AIR进行移动应用开发的时候,我们或许会有这样的需求:假如我们开发的是两个应用(A和B),同时安装到手机上,那么能否在A中呼叫B并传递参数呢(或者反过来B操作后,再把参数返回给A)。

目前AIR还没有直接呼叫某个APP的API,但我们可以使用手机特有的特性来实现。可以使用ANE,借助原生代码来实现,也可以使用自定义的URI来实现。具体教程参见:

Adobe AIR研究小组:Adobe AIR移动App的互相调用实现方式

更新:在Adobe AIR 3.5 beta中已经原生添加了这个特性

4、AIR移动应用对图标尺寸的要求是什么?

答:主要是看发布平台对图标的尺寸要求,以目前应用最广泛的iOS和Android平台的要求为准,我们应该准备的图片尺寸是:

  • Android: 24*24,32*32,36*36,48*48,72*72
  • iOS: 29*29,48*48,57*57,58*58,72*72,96*96,114*114,144*144,512*512

5、AIR for iOS应用如何限定最低系统版本

答:如果您的应用使用到了最新的iOS系统才支持的功能,就必须在应用中做一些限定了,防止不符合条件要求的系统安装了应用而导致无法运行。

方式是在XML配置中增加:

<key>MinimumOSVersion</key>
<string>5.0.1</string>

6、Starling中如何裁切纹理

答:通过Image.setTexCoords()方法,可以改变四边形顶点对于的纹理的UV坐标(取值范围0-1),这样可以实现对纹理的一个矩形区域的裁切。比如我们只需要显示纹理右下方1/4的区域,可以这样设置:

img.setTexCoords(0,new Point(0.5,0.5));
img.setTexCoords(1,new Point(1,0.5));
img.setTexCoords(2,new Point(0.5,1));
img.setTexCoords(3,new Point(1,1));//TIPS: Starling中两个三角形组成一个四边形,而四边形的4个顶点的索引以及其位置是:
0 1
2 3

7、如何在Starling中平铺图片?

答:设置texture.repeat为true,并且设置image的UV坐标。

代码示例:

var birdTex:Texture = Texture.fromBitmap(new birdBMPClass() as Bitmap);
birdTex.repeat = true;
var bird:Image = new Image(birdTex);
bird.width = 960;
bird.height = 640;
bird.setTexCoords(1, new Point(bird.width/birdTex.width, 0));
bird.setTexCoords(2, new Point(0, bird.height/birdTex.height));
bird.setTexCoords(3, new Point(bird.width/birdTex.width, bird.height/birdTex.height));
addChild(bird);

8、如何将多个纹理合并成一个纹理?

/*** 克隆可视对象到一个图片* @param target    可视目标对象* @param persistent    指明纹理在经过多次绘制之后是否是持久的* @return */
public static function clone(target:DisplayObject, persistent:Boolean = false):Image
{if (!target){return null;}var texture:RenderTexture = new RenderTexture(target.width, target.height, persistent);if (target is DisplayObjectContainer){texture.drawBundled(function():void{var num:int = DisplayObjectContainer(target).numChildren;for (var i:int = 0; i < num; i++){texture.draw(DisplayObjectContainer(target).getChildAt(i));}});}else{texture.draw(target);}return new Image(texture);
}

9、如何解决Starling应用放大之后,图片之间的间隙?

答:这可能是Stage3D在纹理取样时的算法造成的。

方式1:使用TextureSmoothing.NONE。比如:

var image1:TestImage = new TestImage(sAssets.getTexture("test"));
image1.smoothing = TextureSmoothing.NONE;

方式2:设置图像显示区域的偏移量,来避免这个问题:

package
{import starling.display.Image;import starling.textures.Texture;import flash.geom.Point;import flash.utils.setTimeout;/*** 根据缩放,自动调整尺寸的Image*/    public class TestImage extends Image{public static var offset:Number = 0;public function TestImage(texture:Texture){super(texture);if(offset>0){setPositions();}}private function setPositions():void{var w:Number = super.width+offset;var h:Number = super.height+offset;mVertexData.setPosition(0,0-offset,0-offset);mVertexData.setPosition(1,w,0-offset);mVertexData.setPosition(2,0-offset,h);mVertexData.setPosition(3,w,h);}/**@override*/override public function readjustSize():void{super.readjustSize();setPositions();}/**@override*/override public function setTexCoords(vertexID:int, coords:Point):void{super.setTexCoords(vertexID,coords);setPositions();}/**@override*/override public function set width(value:Number):void{super.width = value;setTimeout(setPositions,1);}/**@override*/override public function set height(value:Number):void{super.height = value;setTimeout(setPositions,1);}}
}

// 使用
if(viewPort.width>stageWidth)TestImage.offset = 1;

Starling常见问题解决办法相关推荐

  1. 计算机常发故障英语,vipkid英语常见问题解决办法

    大家使用vipkid英语学习时,可能会遇到各种问题,下面分享一下vipkid英语常见问题解决办法,希望可以帮到大家. vipkid英语常见问题解决办法 一.浏览器问题 建议使用的浏览器: 谷歌浏览器 ...

  2. Jlink在ADS下的配置说明及常见问题解决办法 (转载)

    **原文地址:[Jlink在ADS下的配置说明及常见问题解决办法] (http://www.360doc.com/content/13/1124/23/6844270_331917942.shtml) ...

  3. Jlink在ADS下的配置说明及常见问题解决办法

    阅读1087次 2013/4/2 21:04:37 Jlink在ADS下的配置说明及常见问题解决办法Zhaoxj 参考文档: *1.TQ2440开发板使用手册V3.2_20121203.pdf 2.J ...

  4. 【原创】Jlink在ADS下的配置说明及常见问题解决办法

    Jlink在ADS下的配置说明及常见问题解决办法Zhaoxj 参考文档: *1.TQ2440开发板使用手册V3.2_20121203.pdf 2.JLINK ADS 2440.pdf 注:1.本说明是 ...

  5. 猎杀对决与服务器连接中断,猎杀对决游戏常见问题汇总_猎杀对决游戏常见问题解决办法...

    猎杀对决游戏相信大家应该已经不陌生了,对于这款游戏还不好玩小编已经不用给大家介绍大家也知道了,今天小编给大家带来猎杀对决游戏常见问题解决办法. 猎杀对决游戏常见问题解决办法 猎杀对决提示EasyAnt ...

  6. 教师资格证笔试报名信息内部服务器错误,教师资格考试报名常见问题解决办法(2017年)...

    出国留学网教师资格证考试栏目为大家分享"教师资格考试报名常见问题解决办法(2017年)",希望能帮到大家.想了解更多关于教师资格证考试的讯息,请继续关注我们网站的更新. 教师资格考 ...

  7. 联想黑苹果找不到触摸板_联想V330-15IKB完美黑苹果,和笔记本各类常见问题解决办法...

    本帖最后由 rclhxm 于 2020-9-17 20:31 编辑 前言 最近用了一周的时间把我的联想V330-15IKB给装上了10.15.6的黑苹果,并完美驱动(完善程度90%以上,因为可能有些领 ...

  8. PSCAD快速上手和常见问题解决办法

    PSCAD快速上手和常见问题解决办法 PSCAD文件 编译过程 如何新建一个项目? 如何添加元件到case里? 如何新建元件? PSCAD模型常见问题及解决办法 1. 缺少Gfortran编译器 2. ...

  9. QQ直播使用常见问题解决办法(转)

    QQ直播使用常见问题解决办法(转) 问:使用直播的系统最低配置 答:使用QQ直播的最低标准配置为1.CPU工作频率PIII 800M,内存128M.2 Windows 98及其以上的Windows操作 ...

最新文章

  1. CentOS 6.3 运维监控之Cacti 监控主机系统(二)
  2. python指定版本 安装模块包
  3. WPF之DataGrid篇:DataGridComboBoxColumn
  4. 关于医学院网络中心成立工作室的设想
  5. java getstringbounds_java-AttributedString的FontMetrics.getStringBounds给出...
  6. 【python】利用python的tkinter-canvas函数绘制哆啦A梦过程详解(附源码)
  7. springaop----springaop的使用(一)
  8. Android系统(40)---进程与线程
  9. 洛谷P1328生活大爆炸版石头剪刀布
  10. php 获取 get变量,php – 在Laravel中获取GET“?”变量
  11. 外层div自动撑大为什么没有最大_在工业自动化行业,为什么电阻触摸屏更受欢迎...
  12. 【备忘】大数据爬虫项目超清视频+源码
  13. 项目开发中常用的精华Python库介绍与整理
  14. 基于JavaWeb的小区物业管理系统的设计与实现
  15. 微信公众号的搭建-第二天-申请公众号并与本地测试服务器绑定
  16. 给传智播客的一份感谢信
  17. 【转】欧几里德结构数据(Euclidean Structure Data) 以及非欧几里德结构数据(Non-Euclidean Structure Data)
  18. iPad 4.2.1 非完美越狱
  19. win10拒绝访问,需要安全选项卡如何操作?
  20. 2019年总结回顾 ~ 开心!评上CSDN博客专家-100篇博文回顾人工智能的前行之路!

热门文章

  1. 日常生活开支记账明细_做好这3点,不再白记账
  2. 检查密码 (15 分)
  3. mpvue 微信小程序设置背景音乐
  4. JavaScript:继承
  5. mfc之解决vs2010调试监视器(MSVSMON.EXE)未能启动的问题
  6. YOLO v3网络结构分析
  7. i java 字节码_用java字节码解释i++和++i
  8. 最小生成树原理及Kruskal算法的js实现
  9. oraccle 索引管理
  10. angular路由模块(二)