我想在flash中循环播放一些视频,但是当我尝试运行它时,我找到了这个代码但是“通过带有静态类型类的引用访问可能未定义的属性COMPLETE”。
video.source="video.flv";
import fl.video.*;
function onFLVCOMPLETE(event:VideoEvent):void{
event.target.play();
}
video.addEventListener(VideoEvent.COMPLETE, onFLVCOMPLETE);
不知道发生了什么,所以任何帮助都会很棒
答案 0 :(得分:2)
修改强>
这就是发生的事情:
FlashPro / AdobeAnimate IDE会自动导入flash.events
包(无论您是否已明确告知它)。执行此操作时,flash.events.VideoEvent
类会将导入的fl.video.VideoEvent
类替换为使用VideoEvent
时引用的类。
要解决此问题,您只需使用完全限定的类名。所以不要使用:
VideoEvent
您使用:
fl.video.VideoEvent
所以你的代码应该是这样的:
function onFLVCOMPLETE(event:fl.video.VideoEvent):void{
event.target.play();
}
video.addEventListener(fl.video.VideoEvent.COMPLETE, onFLVCOMPLETE);
要测试此行为,您需要在时间轴上创建一个包含以下代码的新FlashPro项目:(您还需要将一个视频组件添加到库中)
import fl.video.VideoEvent;
trace(flash.utils.getQualifiedClassName(VideoEvent));
输出窗口中的预期结果为fl.video::VideoEvent
,但实际结果为:
flash.events::VideoEvent
即使您只导入了fl.video.VideoEvent
,VideoEvent
也指的是flash.events.VideoEvent
(未导入)。