Actionscript 3 为什么单击事件不起作用?

Actionscript 3 为什么单击事件不起作用?,actionscript-3,flash,Actionscript 3,Flash,此脚本显示外部swf文件。但是MouseEvent.CLICK不工作。为什么?您作为外部资源加载的具体内容。如果是SWF,那么有什么东西。此外,我还建议加载swf后附加侦听器。即在事件中完成处理程序。这是文档中的代码: var url:String; var link:String; var w:Number; var h:Number; url = loaderInfo.parameters.swfurl; link = loaderInfo.parameters.link; var re

此脚本显示外部swf文件。但是MouseEvent.CLICK不工作。为什么?

您作为外部资源加载的具体内容。如果是SWF,那么有什么东西。此外,我还建议加载swf后附加侦听器。即在事件中完成处理程序。这是文档中的代码:

var url:String;
var link:String;
var w:Number;
var h:Number;

url = loaderInfo.parameters.swfurl;
link = loaderInfo.parameters.link;

var request:URLRequest = new URLRequest(url);
var loader:Loader = new Loader();

loader.load(request);
addChild(loader);


loader.addEventListener(MouseEvent.CLICK, onClick);

function onClick(e:MouseEvent){
        trace('clicked');
}
}


因此,请尝试在completeHandler方法中附加侦听器。

作为外部资源加载的确切内容。如果是SWF,那么有什么东西。此外,我还建议加载swf后附加侦听器。即在事件中完成处理程序。这是文档中的代码:

var url:String;
var link:String;
var w:Number;
var h:Number;

url = loaderInfo.parameters.swfurl;
link = loaderInfo.parameters.link;

var request:URLRequest = new URLRequest(url);
var loader:Loader = new Loader();

loader.load(request);
addChild(loader);


loader.addEventListener(MouseEvent.CLICK, onClick);

function onClick(e:MouseEvent){
        trace('clicked');
}
}


因此,请尝试在completeHandler方法中附加侦听器。

如果您看到屏幕上的内容,那么问题可能在于单击事件处理:

click事件的目标可能是显示列表中低于加载程序的内容(如加载程序内容或其中的子项-也就是说,您没有单击加载程序,而是单击了其中的MovieClip)。根据您的要求,您可以尝试几种不同的方法:

  • 使用useCapture=true进行收听(这将注册对加载电影中任何内容的任何点击):

  • 禁用加载程序上的鼠标儿童。这意味着单击事件将在加载程序处停止,而不会在加载程序的子项中注册:

    loader.addEventListener(MouseEvent.CLICK, onClick, true);
    
    • 请注意,这可能会导致希望在加载的swf中单击事件(如按钮)的内容无法工作。但是,如果加载器内容不打算是交互式的,这应该是好的

  • 如果您看到屏幕上的内容,则问题可能在于单击事件处理:

    click事件的目标可能是显示列表中低于加载程序的内容(如加载程序内容或其中的子项-也就是说,您没有单击加载程序,而是单击了其中的MovieClip)。根据您的要求,您可以尝试几种不同的方法:

  • 使用useCapture=true进行收听(这将注册对加载电影中任何内容的任何点击):

  • 禁用加载程序上的鼠标儿童。这意味着单击事件将在加载程序处停止,而不会在加载程序的子项中注册:

    loader.addEventListener(MouseEvent.CLICK, onClick, true);
    
    • 请注意,这可能会导致希望在加载的swf中单击事件(如按钮)的内容无法工作。但是,如果加载器内容不打算是交互式的,这应该是好的

  • 检查loaderInfo.parameters.swfurl特性右url链接。因为当我运行你的代码时,给本地swf文件它的work.check loaderInfo.parameters.swfurl featch right url链接。因为当我运行你的代码,给本地swf文件它的工作。