Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 Adobe Flash-访问可能未定义的属性已完成_Actionscript 3_Flash_Actionscript_Flash Cs6 - Fatal编程技术网

Actionscript 3 Adobe Flash-访问可能未定义的属性已完成

Actionscript 3 Adobe Flash-访问可能未定义的属性已完成,actionscript-3,flash,actionscript,flash-cs6,Actionscript 3,Flash,Actionscript,Flash Cs6,我想在flash中循环一些视频,我找到了这段代码,但当我尝试运行它时,“通过引用静态类型类完成对可能未定义属性的访问” video.source="video.flv"; import fl.video.*; function onFLVCOMPLETE(event:VideoEvent):void{ event.target.play(); } video.addEventListener(VideoEvent.COMPLETE, onFLVCOMPLETE); 不知

我想在flash中循环一些视频,我找到了这段代码,但当我尝试运行它时,“通过引用静态类型类完成对可能未定义属性的访问”

video.source="video.flv";
import fl.video.*;
function onFLVCOMPLETE(event:VideoEvent):void{
            event.target.play();
}
video.addEventListener(VideoEvent.COMPLETE, onFLVCOMPLETE);
不知道发生了什么,所以任何帮助都会很好

编辑

这就是正在发生的事情:

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项目,并在时间轴上使用以下代码:(您还需要向库中添加视频组件)

输出窗口中的预期结果是
fl.video::VideoEvent
,但实际结果是:

flash.events::VideoEvent


因此,即使您只导入了
fl.video.VideoEvent
VideoEvent
指的是
flash.events.VideoEvent
(未导入).

我认为OP所寻找的正确的
VideoEvent
是一个具有常数的类…@Aaron Owen-考虑到@akmozo的上述评论,也许你得到了冲突的VideoEvent类(来自
flash.events
包的类和来自
fl.video
包的类)-尝试此操作并查看是否已修复:
video.addEventListener(fl.video.VideoEvent.COMPLETE,onFLVCOMPLETE)但是,所有这些完整事件都是相同的字符串,因此它应该与
事件.complete
以及
fl.video.VideoEvent.complete
@akmozo,很好的捕获,我不使用fl包/组件,也从未注意到还有另一个VideoEvent类。@fabriceacquart哇,你的评论有点过火了?只是因为你明白这并不意味着其他人都明白,我以前从未使用过flash/actionscript,我正在努力学习。@AaronOwen-你明白了吗?忽略上面的评论,您的
导入fl.video.*
将导入所需的类,因此无需添加
import fl.video.VideoEvent
(尽管后者更为具体,因此是更好的做法)。这里有些人喜欢吹毛求疵,在没有正确理解被问到什么以及问题是什么的情况下投反对票…@FabriceAcquart-OP正在导入该类:
import fl.video.*
通配符
*
导入该包中的所有类,其中包括fl.video.VideoEvent。这个问题在我的回答的第二部分,它实际上是一个非常好的问题,有一个相当模糊的解决方案,这肯定是不明显的。哦,是的,错过了那一行,出于某种原因xD
import fl.video.VideoEvent;
trace(flash.utils.getQualifiedClassName(VideoEvent));