Actionscript 3 基于鼠标点击的搜索

Actionscript 3 基于鼠标点击的搜索,actionscript-3,osmf,Actionscript 3,Osmf,我正在尝试修改频闪媒体播放,以便基于鼠标单击按钮而不是控制栏来搜索整个视频。每次点击都会让我领先“n”秒,它会清除缓冲区并自动插入正确的片段 要做到这一点,我有一个功能,它是根据按钮被点击时触发的,但我无法搜索。我收到一个错误:无法访问空对象引用的属性或方法 有人能告诉我这里出了什么问题吗: override protected function onMouseClick(event:MouseEvent):void { httpStreamSource

我正在尝试修改频闪媒体播放,以便基于鼠标单击按钮而不是控制栏来搜索整个视频。每次点击都会让我领先“n”秒,它会清除缓冲区并自动插入正确的片段

要做到这一点,我有一个功能,它是根据按钮被点击时触发的,但我无法搜索。我收到一个错误:
无法访问空对象引用的属性或方法

有人能告诉我这里出了什么问题吗:

        override protected function onMouseClick(event:MouseEvent):void
    {

        httpStreamSource.seek(9);
//          mediaPlayer.seek(55);

        showRight = !showRight;
        if(showRight)
            setFace(down);
        else
            setFace(up);
    }

提前谢谢

对于提前n秒搜索,您应该将当前时间加上n秒,并将其反馈给seek方法

对于空对象错误,必须确保对象存在:

TypeError:错误#1009:无法访问null对象引用的属性或方法。位于org.osmf.player.chrome.widgets::JumpButton/_seekVideo()[I:\osmf\player\StrobeMed‌​iaPlayback\src\org\osmf\player\chrome\widgets\JumpButton.as:49]

在第49行,您只有一个对象:mediaPlayer-在使用之前添加测试(如果存在):

private function _seekVideo( seekTo : Number ):void 
{ 
    if (mediaPlayer && mediaPlayer.canSeekTo(seekTo * mediaPlayer.duration))
    {
        mediaPlayer.seek( seekTo * mediaPlayer.duration );//line49 
    }
}
这将防止您在搜索mediaPlayer对象在单击时不可用的原因时出现类型错误


致以最诚挚的问候

您应该显示错误行-空引用表示您调用方法/属性的对象不可访问。感谢您的响应,程序编译正常,播放视频时会发生此错误。是否可以通过调试获得行号?当我不使用seek行时,没有错误,所以我非常确定原因必须在这个函数中。所以添加完整的错误堆栈,以便我们可以看到错误的传播。httpStreamSource和mediaPlayer也不能为null。您好,很抱歉我不知道,但是您想查看flashlog条目吗?或者是你要求的其他东西。谢谢。当错误在flash player的调试版本中抛出时,它会在错误弹出窗口中提供,并显示错误详细信息,例如:>>>TypeError:error#1009:无法访问空对象引用的属性或方法。在Main/run()[C:\test\src\Main.as:181]在Main/libLoadHandler()[C:\test\src\Main.as:375]您好,非常感谢。我设法把错误归零并解决了它。但是现在,当我尝试执行相同的例程时,它返回一个
错误:当前不支持指定的功能。进一步挖掘后,我发现mediaPlayer.canSeekTo在视频中的任何一点都是假的。我不知道为什么会发生这样的事情。我正在使用频闪进行HDS-VOD。任何想法都会大有裨益!提前谢谢!