Flash到iPhone速度很慢
我在Flash中创建了一个iPhone应用程序,并且遇到了性能问题。我已经将整个事件简化为一个简单的例子(如下)。它在屏幕上绘制一个框,并使用TouchEvent跟踪手指手势。这就是问题所在:它在我测试的iPhone 3G上非常缓慢。盒子在页面上下方停顿。Flash到iPhone速度很慢
在application.xml中启用了GPU模式,当我设置-renderingdiagnostics标志时,文本变为蓝色(意味着它每次都呈现,这是正确的),但正方形保持白色。它不会转变诊断模式的三种颜色中的任何一种。这里是一个画面:
http://whit.info/dev/flashapp/screen.jpg
,这里是呆滞的视频:,考虑到这
所以只有一个缓存精灵垂直移动,我错过关于启用GPU或位图缓存的一些事情?或者,这是否像在硬件上一样好?其他应用程序似乎出色地下滑。
任何人都可以协助吗?
非常感谢!
-Whit
package {
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.events.TouchEvent;
import flash.ui.Multitouch;
import flash.ui.MultitouchInputMode;
import flash.text.TextField;
import flash.text.TextFormat;
import flash.text.TextFieldAutoSize;
[SWF(width='320', height='480', backgroundColor='#BACC00', frameRate='60')]
public class Main extends MovieClip{
private var square:Sprite;
private var txt:TextField;
private var startDragY:Number;
private var startObjY:Number;
public function Main(){
Multitouch.inputMode=MultitouchInputMode.TOUCH_POINT;
stage.addEventListener(TouchEvent.TOUCH_BEGIN, beginhandler);
stage.addEventListener(TouchEvent.TOUCH_MOVE, movehandler);
stage.addEventListener(TouchEvent.TOUCH_END, endhandler);
drawBox(0xffffff);
makeOutput();
}
private function beginhandler(evt:TouchEvent): void {
startDragY = evt.stageY;
startObjY = square.y;
}
private function movehandler(evt:TouchEvent): void {
out(String(evt.stageY));
square.y = startObjY - (startDragY - evt.stageY);
}
private function drawBox(fill:Number):void {
square = new Sprite();
square.graphics.beginFill(fill);
square.graphics.drawRect(20,60,40,40);
square.graphics.endFill();
stage.addChild(square);
square.cacheAsBitmap = true;
}
private function makeOutput():void {
txt = new TextField();
stage.addChild(txt);
txt.selectable = false;
txt.autoSize = TextFieldAutoSize.CENTER;
txt.defaultTextFormat = new TextFormat("Arial", 22, 0x000000);
txt.text = "Touch Screen";
txt.x = stage.stageWidth/2 - txt.width/2;
txt.y = stage.stageHeight/2 - txt.height/2;
}
private function out(str:String):void {
txt.text = str;
}
}
}
而且,这里有我使用编译命令:
.amxmlc ~/Files/Code/iOS/MyApp/Main.as
.pfi -package -renderingdiagnostics -target ipa-test -provisioning-profile MyApp.mobileprovision -storetype pkcs12 -keystore Certificates.p12 -storepass MyPass MyApp.ipa application.xml Main.swf Default.png icons
最新的Adobe更新是为设备。
我们的团队也面临同样的问题,并通过更新产品解决了问题。
我们更新为:
Flash professional CS5.5
AIR 2.7
和性能上的差异是明显的。
感谢您的帮助,您的回答非常有效。 :) – Whit 2011-06-18 19:47:37
很好分享的细节。期待从Adobe进一步升级。定期检查将继续值得更惠特。 – 2011-06-18 19:56:39
了闪光灯出口的版本,您使用的?据称CS5.5更新速度有所提升。
此外,iOS 4上的iPhone 3g已经耗尽内存,如果使用AIR加载内存不足,我不会感到惊讶。
如果您想要在iPhone 3G(可能是任何iOS设备)上获得良好的动画性能,请使用Apple提供的Xcode工具在Objective C中编写应用程序。结果将运行得更快,消耗的客户设备的电池和内存要少得多。
“我正在Flash中创建一个iPhone应用程序。”哦,亲爱的...祝你好运! – Roger 2011-06-15 22:19:17