Actionscript 3 AS 3-子系统上的调度事件isn';不行吗?
我正在用actionscript 3制作一个视频播放器,我对它很陌生,所以。。 无论如何,我现在要做的是让应用程序自动点击第一个缩略图 以下是我的应用程序中的一些代码:Actionscript 3 AS 3-子系统上的调度事件isn';不行吗?,actionscript-3,flash,actionscript,Actionscript 3,Flash,Actionscript,我正在用actionscript 3制作一个视频播放器,我对它很陌生,所以。。 无论如何,我现在要做的是让应用程序自动点击第一个缩略图 以下是我的应用程序中的一些代码: function createThumbs():void{ var i:Number = 0; //For loop that iterates through all of the videos in an XML file that has a list of videos in it for eac
function createThumbs():void{
var i:Number = 0;
//For loop that iterates through all of the videos in an XML file that has a list of videos in it
for each (var videoEntry:XML in videosList) {
i++;
var thumbnail:MovieClip = new thumb_mc;
thumbnail.name = "thumb"+i;
thumbnail.addEventListener(MouseEvent.MOUSE_UP,thumb_click);
thumbs_container.addChild(thumbnail);
//Now attempting to simulate a click if it's the first thumbnail
if(i == 1){
thumbnail.dispatchEvent( new MouseEvent( MouseEvent.MOUSE_UP ) );
}
}
}
我一直在用谷歌搜索它,发现也许我需要添加一个事件监听器来知道缩略图何时被添加到舞台上,然后点击它
我不知道怎么做,如果你们能帮我,我将不胜感激。
提前谢谢
编辑:
根据Ascension Systems的回答,我试图编辑我的if语句:
if(i == 1){
thumbnail.addEventListener(Event.ADDED_TO_STAGE, function clipAdded(e:Event):void {
MovieClip(e.currentTarget).dispatchEvent( new MouseEvent( MouseEvent.MOUSE_UP ) );
});
}
我这样做只是为了看看是否有什么事情发生,是否真的点击了缩略图,但事实并非如此
编辑:
我刚刚发现Ascension系统提供的代码是有效的,但一开始由于一个不同的错误它没有起作用,
问题是,我正在使用youtube API、FLVPlayback等等,
他们每个人都在不同的电影里,
在youtube movieclip中,我添加了以下功能:
function destroyPlayer():void {
player.destroy();
}
但很明显,它引起了我以前从未注意到的警告:
TypeError:错误#1009:无法访问空对象引用的属性或方法。
在佛罗里达:YT_mc_4/毁灭玩家()
我在脚本开头将播放器设置为对象,如下所示:
var玩家:对象
知道为什么会出现这个警告吗
thumbnail.addEventListener(Event.ADDED_TO_STAGE, function clipAdded(e:Event):void {
MovieClip(e.currentTarget).dispatchEvent(new MouseEvent(MouseEvent.MOUSE_DOWN, ... rest of arguments);
//Remove the listener when done
(e.target as EventDispatcher).removeEventListener(e.type, arguments.callee);
});
此代码未经测试,请注意dispatchEvent代码是伪代码。我将匿名函数放入事件侦听器的方式。。。它有点懒惰,有些人可能不喜欢它,但是回调中有清理事件侦听器的代码,而且由于它是一个只运行一次的函数,因此我认为它可以用于此目的。关于这到底是什么的更多信息
但我不确定这是否能解决你的问题。就像我说的,这没有经过测试,它是基于这样的假设,即在对象实际出现在舞台上之前调度事件是这里的问题。让我知道这是否适合你
另外,作为补充说明,如果您是flash/AS3新手,那么您肯定需要这个网站:我删除了Flex标签b/c这个问题与Flex没有任何关系。我不知道你的代码为什么不起作用。你需要模拟鼠标上升事件,还是直接调用thumb_click方法?@www.Flextras.com我想一些flex程序员也有一些类似的知识,但也许我错了,不管怎么说,关于代码,该方法必须从缩略图调用,因为它从目标获取值,suchFlex是一个ActionScript框架;因此,几乎每个Flex程序员都应该具备一些AS3知识。然而,这个问题与Flex框架无关。我建议根据相关主题标记问题。很多Flash程序员也使用PHP;但您不会将其标记为PHP,对吗?@www.Flextras.com True。明白了,伙计。我不会再这样做了,谢谢你纠正我:)@Taurayi嗨,我一直在努力让这段代码工作,我刚刚发现它确实工作,但问题是由其他原因引起的,我会马上编辑我的问题,如果你能帮上忙,我会很高兴:)谢谢你,我用我尝试过的方法编辑了我的问题,但它仍然不起作用,我很高兴听到我是否应该这样做是的,但问题是完全不同的,它是说,球员没有在另一部电影中定义,我以一种糟糕的方式解决了它,但至少现在它起作用了,我仍然很高兴知道我为什么会有这个问题,我编辑了这个问题,这样你就可以看到我的问题是什么了