AS3 AIR:移动版

时间:2015-09-23 14:40:59

标签: android actionscript-3 air

因此,我只为纵向模式构建相当简单的应用程序,并且它将为内容进行垂直滚动。

内容基本上是一个包含图像作为背景和其他次要元素的MovieClip(将小型MovieClip作为按钮等)。

问题在于我似乎找不到一种平滑的方式来滚动我的内容。我希望它能够流畅和准确,并且我已经尝试了许多不同的方法。

出于测试目的,我使用(在我的content MovieClip内)的背景是来自库的533x1250 jpg。

这是我将content mc和backround添加到其中的方式:

scaleXFactor = stage.stageWidth / 640; //my stage is 640x960
...
addChild(content); //which is new MovieClip()
var bg:bg1 = new bg1();
bg.x = p1bg.y = 0;
bg.width = 640 * scaleXFactor; 
bg.scaleY = bg.scaleX;
content.width = bg.width;
content.height = bg.height;
content.addChild(bg);

对于滚动,我认为只需使用MOUSE_DOWN& amp; MOUSE_UP事件监听器和基本的ENTER_FRAME函数如下:

mouseLastPos = stage.mouseY;
if(MouseUpVar == 1){                                                        
    mousePosDiff = (mouseOriPosY-mouseLastPos);         
}                                                       

content.y -= mousePosDiff*1.2;
mouseOriPosY = stage.mouseY;                            

if(MouseUpVar == 0){ //Smoothening which is allowed by MOUSE_UP
    if(mousePosDiff > 0){
        mousePosDiff -= 0.001;
    }else if(mousePosDiff < 0){
        mousePosDiff += 0.001;
    }
}
if(content.y < (content.height - stage.stageHeight)*-1){                
    content.y = (content.height - stage.stageHeight)*-1;
}else if(content.y > 0){
    content.y = 0;
}

在调试播放器中,它可以像你想象的那样流畅,但在真实设备(三星Note4)中,它非常迟钝和笨拙。

我还尝试过freshplanet的剧本,虽然没有那么迟钝,但仍然有点笨拙,并且出于某种原因弄乱了我的规模。   而且IScrollerComponent似乎在AIR上有一些问题,而且我的屏幕上没有任何可视元素。 渲染设置或cacheAsBitmap似乎对此没有任何影响。

如何做到这一点?这个&#39;小&#39;是否正常?图像(533x1250)导致严重滞后? 我真的需要使用AS3和AIR,所以我希望找到一个好的,简单的&#34;解决方案(是的,这不会经常发生)。

谢谢,   kaarto

1 个答案:

答案 0 :(得分:0)

尝试在您的内容和cacheAsBitmap=true上使用scrollRect,而不是移动您的内容。