0

我想创建一个 Flash 应用程序,它将在算法的每个步骤中演示变量如何更改(如调试)。该算法是最大流。我想要 3 个按钮:播放、暂停和下一步。

一般来说,我需要以某种方式退出调用该函数的事件,检查是否单击了任何按钮并到达我离开的代码中的位置。

function flux():void
{
    var x,i,d,q:int;
    do
    {
        x = activ();
        for (i=1; i<=n; i++)
        {
            if (vert[i].stare == 0 && a[x][i] > 0 && e[x][i] < a[x][i])
            {
                d = a[x][i] - e[x][i];
                if (d<vert[x].flux)
                {
                    vert[i].flux = d;
                }
                else
                {
                    vert[i].flux = vert[x].flux;
                }

                vert[i].stare = 1;
                vert[i].sursa = x;
            }
        }
        for (i=1; i<=n; i++)
        {
            if (vert[i].stare == 0 && e[i][x] > 0)
            {

                d = e[i][x];
                if (d<vert[x].flux)
                {

                    vert[i].flux = d;
                }
                else
                {

                    vert[i].flux = vert[x].flux;
                }
                vert[i].stare = 1;
                vert[i].sursa =  -  x;

            }
        }
        vert[x].stare = 2;
    } while (vert[f].stare!=1 && activ()!=0);

    delt = 0;
    if (vert[f].stare == 1)
    {
        x = f;
        delt = vert[f].flux;
        do
        {
            q = abs(vert[x].sursa);
            if (vert[x].sursa < 0)
            {
                e[q][x] -=  delt;
            }
            if (vert[x].sursa > 0)
            {
                e[q][x] +=  delt;
            }
            x = q;
        } while (x!=st);
    }
}

起初我以为我会使用来自 c++ 的标签,但在 AS3 中它们仅用于循环。谢谢。

4

2 回答 2

0

您可以为指令创建一个队列系统,并在访问它们时暂停,一个接一个。这些指令也应该是子指令的队列实例。这些指令可能是函数或带有方法的对象。

查看PureMVC的命令系统,它可能是您正在寻找的。

于 2013-08-14T09:58:51.173 回答
0

不是真正的解决方案,但只要它处于调试模式下在调试播放器中运行,您就可以 System.pause() 正在运行的应用程序。您可以在需要时暂停和恢复您的代码,并在此之前使用您想要的数据跟踪/显示文本字段。

于 2013-08-14T09:48:59.967 回答