event.bytesLoaded - 访问未定义的属性事件

时间:2014-11-17 14:03:46

标签: actionscript-3 flash

1120: Access of undeined property event.

...抛出了event.bytesLoaded和event.bytesTotal

public class Main extends MovieClip {
    public function Main() {
        system_load.bar.scaleX = 0;
        this.stage.addEventListener(Event.ENTER_FRAME, this._loadUpdate);
    }

    private function _loadUpdate( e:Event ):void {
        var bl:int = event.bytesLoaded;
        var bt:int = event.bytesTotal;
        system_load.bar.scaleX = (bl/bt);
    }
}

我不确定要导入什么来完成这项工作。目前有以下导入:

import flash.display.MovieClip;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.events.ProgressEvent;

请问,我会提供更多详情。

2 个答案:

答案 0 :(得分:0)

您的事件变量称为e而非事件。尝试:

private function _loadUpdate( event:ProgressEvent ):void {
        var bl:Number = event.bytesLoaded;
        var bt:Number = event.bytesTotal;
        system_load.bar.scaleX = (bl/bt);
    }

编辑:如果你想访问bytesLoaded和bytesTotal,我建议你使用ProgressEvent

答案 1 :(得分:0)

您收到此错误的原因是您添加的侦听器使用的是Event类型,而不是ProgressEventProgressEvent类具有属性bytesLoadedbytesTotal,而Event类则没有。ProgressEvent.PROGRESS类。您正在寻找的是myLoader.contentLoaderInfo.addEventListener( ProgressEvent.PROGRESS, loadUpdate ); 的用法。一个例子是:

ProgressEvent

虽然您当前的实现实际上没有加载任何内容,因为您将侦听器添加到舞台而不是加载器,因此不会显示进度。有关相关示例,请在此处查看var myLoader:Loader = new Loader(); myLoader.contentLoaderInfo.addEventListener( ProgressEvent.PROGRESS, loadUpdate ); myLoader.load( new URLRequest("path/to/image.png") ); 课程:

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/events/ProgressEvent.html#includeExamplesSummary

这是一个加载图像的快速而肮脏的例子:

loadUpdate()

然后您可以按原样使用{{1}}。