Adobe Flash - 访问可能的未定义属性 COMPLETE
Posted
技术标签:
【中文标题】Adobe Flash - 访问可能的未定义属性 COMPLETE【英文标题】:Adobe Flash - Access of possible undefined property COMPLETE 【发布时间】:2016-09-04 13:02:05 【问题描述】:我想在 Flash 中循环播放一些视频,我找到了这段代码,但是当我尝试运行它时得到“通过静态类型类的引用访问可能的未定义属性 COMPLETE”。
video.source="video.flv";
import fl.video.*;
function onFLVCOMPLETE(event:VideoEvent):void
event.target.play();
video.addEventListener(VideoEvent.COMPLETE, onFLVCOMPLETE);
不知道发生了什么,所以任何帮助都会很棒
【问题讨论】:
@FabriceBacquart 哇,你的评论有点过火了?仅仅因为你理解它并不意味着其他人都这样做,我以前从未使用过 flash/actionscript,我正在努力学习。 @AaronOwen - 你明白了吗?忽略上面的评论,您的import fl.video.*;
将导入所需的类,因此无需添加 import fl.video.VideoEvent
(尽管后者是更好的做法,因为它更具体)。这里的一些人喜欢批评和否决,而没有正确理解被问到的内容和问题是什么......
@FabriceBacquart - OP 正在导入该类:import fl.video.*
通配符 *
导入该包中的所有类,其中包括 fl.video.VideoEvent。这个问题是我回答的第二部分中的问题,它实际上是一个非常好的问题,它的解决方案相当模糊,绝对不明显。
哦,是的,由于某种原因错过了那条线,xD
【参考方案1】:
编辑
这是正在发生的事情:
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
(它没有被导入)。
【讨论】:
我认为 OP 正在寻找的正确的VideoEvent
是具有 COMPLETE
常量的 fl.video.VideoEvent
类 ...
@Aaron Owen - 考虑到@akmozo 上面的评论,也许你遇到了冲突的 VideoEvent 类(来自flash.events
包的一个和来自fl.video
包的一个) - 试试看看它是否修复它:video.addEventListener(fl.video.VideoEvent.COMPLETE, onFLVCOMPLETE);
虽然,所有这些完整的事件都是相同的字符串,所以它应该与Event.COMPLETE
以及fl.video.VideoEvent.COMPLETE
一起使用
@akmozo,很好,我不使用 fl 包/组件,也从未注意到还有另一个 VideoEvent 类。以上是关于Adobe Flash - 访问可能的未定义属性 COMPLETE的主要内容,如果未能解决你的问题,请参考以下文章
如何绕过“Adobe Flash Player 已停止可能不安全的操作”。使用本地文件在 Mac 10.7 上运行
如何修复可能的未处理承诺拒绝(id:0)?以及如何修复无法读取未定义的属性“导航”?