我正在构建一个自定义预加载器,它不同于 RIA 中常见的“传统”滑动条。预加载器使用 100 盏白色激光灯,它们在一条直线上,它们共同表示进度条。在我问我的问题之前,让我描述一下这是如何工作的:
........ .......,,,,,,,,,:::::::::::::::::: ::::::::BBBBBBBB等等...
上面的字符串抓住了预加载器指标的精神。在这个插图中,角色越大越胖,我的实际预加载器中的激光越亮:
- 最右边的激光表示当前加载的百分比。这也是最亮的激光。
- 所有其他尾随激光变得越来越暗,直到完全变黑,就好像它们在屏幕背面烧毁了一个整体。
步骤“2”是事情变得棘手的地方。出于某种原因,试验激光不会变暗,除了一些随机激光。这是控制点的亮度(或者,当我使用它时,是 alpha 属性)的代码片段:
... more code ...
//Build the dots according the configuration and load status parameters
private function buildDots(x:int, y:int):void {
//Draw the dot, details not shown
var dot:Shape = new Shape();
//Begin the transitioning
this.fadeOn(dot);
}
//Fade a dot to full brightness
private function fadeOn(dot:Shape):void {
var fadeOn:Tween = new Tween(dot, "alpha", None.easeNone, 0, 1, this.fadeOnTime, true);
fadeOn.addEventListener(TweenEvent.MOTION_FINISH, fadeOff);
}
//Fade a dot to black
private function fadeOff(e:TweenEvent):void {
var fadeOff:Tween = new Tween(e.target.obj, "alpha", None.easeNone, 1, .2, this.fadeOffTime, true);
}
... more code ...
有人可以告诉我哪里出错了吗?这些细节可能会有所帮助:
- 整个预加载器位于自定义类中。
- 激光灯完全由代码创建,无需访问库。
如果我可以提供更多详细信息,请告诉我。我会尽可能多地奖励一个好的答案/反馈。
谢谢你所有的时间!