Actionscript 3 为什么我的应用程序在android设备上发布和运行时会有所不同?

Actionscript 3 为什么我的应用程序在android设备上发布和运行时会有所不同?,actionscript-3,Actionscript 3,我使用AdobeCS5.5和as3编写了一个平台游戏。 当我在pc上测试我的应用程序时,游戏运行得非常完美,但当我 发布并运行到我的android设备我有一些重力问题。 有时当我落地时,整个舞台都开始颤抖。 奇怪的是,在同一层同一个场地上,有时舞台开始了 颤抖,有时不颤抖。 这是我的代码中的问题还是其他问题? 我使用800w x 480h的舞台。 我使用GPU模式发布。 我把里面的土地都画成了形状 var xvel = 0; var yvel = 0; var GRA = 1; var FRIC

我使用AdobeCS5.5和as3编写了一个平台游戏。 当我在pc上测试我的应用程序时,游戏运行得非常完美,但当我 发布并运行到我的android设备我有一些重力问题。 有时当我落地时,整个舞台都开始颤抖。 奇怪的是,在同一层同一个场地上,有时舞台开始了 颤抖,有时不颤抖。 这是我的代码中的问题还是其他问题? 我使用800w x 480h的舞台。 我使用GPU模式发布。 我把里面的土地都画成了形状

var xvel = 0;
var yvel = 0;
var GRA = 1;
var FRICT = 0.85;

var downarr = new Array(-12,0,12);
var vertarr = new Array(-20,-30);
var uparr = new Array(-3,0,3);

this.addEventListener(Event.ENTER_FRAME,FramesEvents);

function windowcamera()
{
    var newx =  -  savvito.x + 350;
    var distx = newx - bg.x;
    bg.x +=  distx;

    var newy =  -  savvito.y + 370;
    var disty = newy - bg.y;
    bg.y +=  disty;
}

function phys()
{
    savvito.x +=  xvel;
    savvito.y +=  yvel;
    xvel *=  FRICT;
    yvel +=  GRA;
    if (yvel > 8)
    {
        yvel = 8;
    }
    if (yvel > 2)
    {
        onground = false;
    }


    savvito.virtx = savvito.x + bg.x;
    savvito.virty = savvito.y + bg.y;
    downPush(savvito);
    leftPush(savvito);
    rightPush(savvito);
    upPushCloud(savvito);
    upPush(savvito);
}

function runJump()
{
    onground = false;
    yvel =  -  12;
}

function downPush(d)
{
    d.virtx = d.x + bg.x;
    d.virty = d.y + bg.y;
    for (var i = 0; i < uparr.length; i++)
    {
        var num = uparr[i];
        var tx = d.virtx + num;
        var ty = d.virty - 40;
        while (bg.ground.hitTestPoint(tx , ty , true))
        {
            d.virty++;
            ty++;
            d.y++;
            yvel = 1;
        }
        for (var ie=0; ie<boxingArr.length; ie++)
        {
            var e = boxingArr[ie];
            if (e.liftthisbox == 0)
            {
                while (e.hitTestPoint(tx , ty , true))
                {
                    e.y--;
                    e.yvel = 0;
                }
            }
        }
    }
}
function rightPush(d)
{
    d.virtx = d.x + bg.x + xvel;
    d.virty = d.y + bg.y;
    for (var i = 0; i < vertarr.length; i++)
    {
        var num = vertarr[i];
        var tx = d.virtx + 15;
        var ty = d.virty + num;
        while (bg.ground.hitTestPoint(tx , ty , true))
        {
            d.virtx--;
            tx--;
            d.x--;
            xvel = 0;
        }
        for (var ie=0; ie<boxingArr.length; ie++)
        {
            var e = boxingArr[ie];
            if (e.liftthisbox == 0)
            {
                while (e.hitTestPoint(tx , ty , true))
                {
                    d.virtx--;
                    tx--;
                    d.x--;
                    xvel = 0;
                }
            }
        }
    }
}
function leftPush(d)
{
    d.virtx = d.x + bg.x + xvel;
    d.virty = d.y + bg.y;
    for (var i = 0; i < vertarr.length; i++)
    {
        var num = vertarr[i];
        var tx = d.virtx - 15;
        var ty = d.virty + num;
        while (bg.ground.hitTestPoint(tx , ty , true))
        {
            d.virtx++;
            tx++;
            d.x++;
            xvel = 0;
        }
        for (var ie=0; ie<boxingArr.length; ie++)
        {
            var e = boxingArr[ie];
            if (e.liftthisbox == 0)
            {
                while (e.hitTestPoint(tx , ty , true))
                {
                    d.virtx++;
                    tx++;
                    d.x++;
                    xvel = 0;
                }
            }
        }
    }
}
function upPushCloud(d)
{
    if (yvel > 0)
    {
        d.virtx = d.x + bg.x;
        d.virty = d.y + bg.y;
        for (var i = 0; i < downarr.length; i++)
        {
            var num = downarr[i];
            var tx = d.virtx + num;
            var ty = d.virty;
            while (bg.cloudbg.hitTestPoint(tx , ty , true))
            {
                onground = true;
                jdown = false;
                d.virty--;
                ty--;
                d.y--;
                yvel = 0;
            }
        }
    }
}
function upPush(d)
{
    d.virtx = d.x + bg.x;
    d.virty = d.y + bg.y;
    for (var i = 0; i < downarr.length; i++)
    {
        var num = downarr[i];
        var tx = d.virtx + num;
        var ty = d.virty;
        while (bg.ground.hitTestPoint(tx , ty , true))
        {
            onground = true;
            jdown = false;
            d.virty--;
            ty--;
            d.y--;
            yvel = 0;
        }
        for (var ie=0; ie<boxingArr.length; ie++)
        {
            var e = boxingArr[ie];
            while (e.hitTestPoint(tx , ty , true))
            {
                onground = true;
                jdown = false;
                d.virty--;
                ty--;
                d.y--;
                yvel = 0;
            }
        }
    }
}

 function FramesEvents(e:Event)
{
    phys();

    controls();

    windowcamera();
}
var xvel=0;
var-yvel=0;
var-GRA=1;
var-FRICT=0.85;
var downarr=新数组(-12,0,12);
var vertarr=新阵列(-20,-30);
var uparr=新数组(-3,0,3);
this.addEventListener(Event.ENTER_FRAME,FramesEvents);
函数windowcamera()
{
var newx=-savvito.x+350;
var distx=newx-bg.x;
bg.x+=distx;
var newy=-savvito.y+370;
var disty=新y-bg.y;
bg.y+=disty;
}
函数phys()
{
savvito.x+=xvel;
savvito.y+=yvel;
xvel*=摩擦;
yvel+=GRA;
如果(yvel>8)
{
yvel=8;
}
如果(yvel>2)
{
onground=假;
}
savvito.virtx=savvito.x+bg.x;
savvito.virty=savvito.y+bg.y;
下推(萨维托);
左推(萨维托);
右推(萨维托);
乌普斯库德(萨维托);
乌普什(萨维托);
}
函数runJump()
{
onground=假;
yvel=-12;
}
功能下推(d)
{
d、 virtx=d.x+bg.x;
d、 男性=d.y+bg.y;
对于(变量i=0;i对于(var ie=0;要使用Flash/AS3创建性能高效的移动应用程序,您需要使用支持GPU的框架,如Gamua Starling()。仅在发布设置中的某个位置设置GPU模式不会改变Flash通常使用CPU渲染所有内容的事实。是的,一旦重画区域足够大,Flash就会遇到性能问题并大幅降低FPS。感谢您的回答。因此,如果我下载starling并将其放入代码中,我必须更改所有代码或p我的代码艺术?可能是所有代码。Starling(可能是任何支持GPU的库)不适用于常规Flash内容,它适用于纹理、地图集、网格、四边形和所有其他3D相关内容。您需要以某种方式准备所有图形,以便Starling能够使用。好的,Organi。非常感谢您的回答!