Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/113.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Flex Degrafa';AIR 3.9下的s贝塞尔样条_Ios_Apache Flex_Air_Flex Mobile_Degrafa - Fatal编程技术网

Ios Flex Degrafa';AIR 3.9下的s贝塞尔样条

Ios Flex Degrafa';AIR 3.9下的s贝塞尔样条,ios,apache-flex,air,flex-mobile,degrafa,Ios,Apache Flex,Air,Flex Mobile,Degrafa,我有一个在iOS上运行的mobile Flex项目,它一直在使用Degrafa的库来使用它的BezierSpline类。其目的是为了能够直接在屏幕上绘制,然后使用此库将用户手势提供的点集合转换为贝塞尔曲线 然而,我的应用程序最近在显示至少包含其中一条曲线的页面时就崩溃了。我没有收到任何错误,stacktrace或任何东西,应用程序只是被终止,我被带回iOS桌面。 显然,错误发生在BezierSpline类的.draw()函数中的某个地方 另外,我注意到这只发生在应用程序的发布版本上,或者通过Ap

我有一个在iOS上运行的mobile Flex项目,它一直在使用Degrafa的库来使用它的BezierSpline类。其目的是为了能够直接在屏幕上绘制,然后使用此库将用户手势提供的点集合转换为贝塞尔曲线

然而,我的应用程序最近在显示至少包含其中一条曲线的页面时就崩溃了。我没有收到任何错误,stacktrace或任何东西,应用程序只是被终止,我被带回iOS桌面。 显然,错误发生在BezierSpline类的.draw()函数中的某个地方

另外,我注意到这只发生在应用程序的发布版本上,或者通过AppStore(看起来他们没有注意到),或者通过部署在iPad上的发布包。在模拟器中或直接在设备上使用调试包时,一切正常。 因为我已经有一段时间没有做任何发布包了,我不确定是哪个修改导致了这种情况。我唯一知道的是,我最近将Flash Builder更新为4.7,将AIR更新为3.9(这是本项目其他功能所必需的)

所以我基本上有三个问题:

  • 在这种情况下,应用程序只能在发布模式下崩溃,而不能在调试模式下崩溃?代码保持不变

  • 有人在使用Degrafa及其BezierSpline类时遇到过这种问题吗

  • 这可能是由于将AIR升级到最新的3.9版本造成的吗


编辑:我刚刚在安卓设备上测试了完全相同的代码,曲线显示正确,因此这只有在部署到iOS设备上时才会发生。

我最终实现了Lee Burrows编写的这个非常有用的示例。 以下是我在一次通话中所需的全部信息:

static public function getPoint(t:Number, points:Array):Point
    {
        var x:Number = 0;
        var y:Number = 0;
        var n:uint = points.length-1;
        var factn:Number = factoral(n);

        for (var i:uint=0;i<=n;i++)
        {
            //calc binominal coefficent
            var b:Number = factn/(factoral(i)*factoral(n-i));
            //calc powers
            var k:Number = Math.pow(1-t, n-i)*Math.pow(t, i);
            //add weighted points to totals
            x += b*k*points[i].x;
            y += b*k*points[i].y;
        }

        return new Point(x, y);
    }

    static private function factoral(value:uint):Number
    {
        if (value==0) return 1;

        var total:Number = value;
        while (--value>1)
            total *= value;

        return total;
    }
静态公共函数getPoint(t:Number,points:Array):Point
{
变量x:Number=0;
变量y:数值=0;
变量n:uint=points.length-1;
var factn:数值=因子(n);
对于(变量i:uint=0;i1)
总*=价值;
返回总数;
}
上面的链接中还提供了使用此类的示例代码

此解决方案的唯一缺点是,我必须通过定义曲线将由多少条线组成(通过更改“t”增量)来手动处理曲线平滑度。但我也可以根据控制点的数量或控制点之间的距离动态定义这种增量


无论如何,对于我遇到的问题,这已经足够了,希望这能帮助其他人。

我认为您需要做更多的调试工作;尝试在应用程序[或Degrafa库]中添加一些代码,以将调试信息保存到文件或类似文件中;然后你可以找出问题所在。除此之外,我甚至不知道该建议什么。我好久没听到德格拉法这个名字了。