【发布时间】:2012-04-17 21:06:37
【问题描述】:
我正在尝试为每次将 int 推入数组时在图形上显示一个值的图形文档编写基本代码。这是代码-
import flash.display.Shape;
import flash.display.MovieClip;
import flash.display.Sprite;
var myShape:Shape = new Shape();
myShape.graphics.lineStyle(2, 0x990000, 2);
var max:Number = 0;
var graph:Array = new Array();
var container:Sprite = new Sprite();
var redrawGraph = setInterval(reDraw,1000);
function reDraw()
{
while (container.numChildren)
{
container.removeChildAt(0);
}
graph.push(randomNum());
graph.reverse();
for (var ints in graph)
{
if (graph[ints] > max)
{
max = graph[ints];
}
}
for (var i:Number = 0; i < graph.length-1; i++)
{
myShape.graphics.moveTo(550-i*50, (max – graph[i])*20);
myShape.graphics.lineTo(550-(i+1)*50, (max – graph[i+1])*20);
container.addChild(myShape);
}
this.addChild(container);
graph.reverse();
}
function randomNum():int
{
return Math.floor(Math.random() * 11);`
}
除了我遇到的问题是我最终得到的图形与前一个图形重叠,它应该删除旧图形形状的部分似乎没有工作......我无法弄清楚为什么。
任何帮助将不胜感激。
(抱歉格式化...它无法正常工作
【问题讨论】:
-
这可能是一个范围问题,我会尝试将跟踪放入
reDraw函数以确保container和this是您所期望的。另外,请考虑使用 Timer 类而不是setInterval。 -
我使用跟踪进行了检查,尽管肯定不止一个,但它似乎每个周期只调用一次 removeChildAt(0)。 (它实际上并没有删除它......)
标签: actionscript-3 flash actionscript graph removechild