我有一种情况,在加载我的swf时,我添加了一个事件监听器来监听键盘命令。其中之一是听空间栏,如果它被按下,它应该播放电影。问题是,该电影直到后来才被加载,这取决于其他用户交互,因此,直到它被加载时,其引用才会被定义。但是,如果我只在加载电影时等待并添加关键命令的侦听器,那么我不能将侦听器用于其他键盘命令,例如RIGHT或LEFT,这些命令是首先让您访问电影的按钮。有没有办法添加一个条件或东西,以防止执行代码,如果视频尚未定义?这是我的代码:flash as3只有在定义函数内的实例时才运行函数
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyPressedDown);
function togglePause(event:MouseEvent):void {
video.videoPaused = !video.videoPaused; //video is undefined initially so this throws errors.
}
function keyPressedDown(event:KeyboardEvent):void {
switch (key) {
case 32: //Spacebar
//togglePause();
}
}
function loadVideo(){ //called based on user interactions which happen later on
var video:VideoLoader = new VideoLoader(project_array[cp].project_display_files[0], {name:"myVideo", container:this, bgColor:0x000000, autoPlay:false, volume:1,onComplete:vidLoaded});
video.load(); //currently set up for only one video ([0])-->
}
啊 - 这就是我做错了 - 我早些时候宣布了视频,但没有将其指定为类型:VideoLoader,稍后将其作为视频引用:VideoLoader。一旦我扭转了这两件事情,它就起作用了。谢谢! – mheavers 2011-03-03 21:52:45