我想创建一个 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 中它们仅用于循环。谢谢。