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.VideoEventVideoEvent 指的是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 操作脚本 3 访问 Watson API

如何绕过“Adobe Flash Player 已停止可能不安全的操作”。使用本地文件在 Mac 10.7 上运行

如何修复可能的未处理承诺拒绝(id:0)?以及如何修复无法读取未定义的属性“导航”?

Adobe Air - Flash - 初始窗口位置

Linux Firefox Adobe Flash Player 安装和更新

如何修改adobe flash player插件的默认安装路径?