ActionScript 3.0 加载外部SWF素材资源MovieClip,SimpleButton不支持鼠标事件

我们用flash buidler加载素材一般有三种途径:

1、SWC,这种方式会增大SWF的大小

2、flash cs项目关联

3、SWF专门放素材资源通过Loader方式加载

今天发现通过SWF加载方式有个问题要加载的素材如下图:

  

A:是一个MC,里面放了一个B:mc,C:SimpleButton

问题:加载进A后对A添加鼠标事件如CLICK事件,单击B或C时没有反映?

开始我的加载方式是这样的:

目录结构如图:

代码如下:


 1 package
2 {
3 import flash.display.DisplayObjectContainer;
4 import flash.display.Loader;
5 import flash.display.LoaderInfo;
6 import flash.display.MovieClip;
7 import flash.display.Sprite;
8 import flash.events.Event;
9 import flash.events.MouseEvent;
10 import flash.net.URLRequest;
11 import flash.system.ApplicationDomain;
12
13 [SWF(width = ‘1024‘,height = ‘768‘)]
14 public class TestExam extends Sprite
15 {
16 private var cache:Object = {};
17 private var mcName:String = "StartBar";
18 public function TestExam()
19 {
20
21 init();
22 }
23
24 private function init():void{
25 var loader:Loader = new Loader();
26 loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComp);
27 loader.load(new URLRequest(‘../libs/Material.swf‘));//注意这个路径
28 }
29
30 private function onComp(e:Event):void{
31 trace(e.currentTarget,e.target);
32 var loaderInfo:LoaderInfo = e.currentTarget as LoaderInfo;
33 var appDomain:ApplicationDomain = loaderInfo.applicationDomain;
34 cache[mcName] = appDomain.getDefinition(mcName) as Class;
35
36 var clz:Class = getDef(mcName);
37 addMovie( new clz() as MovieClip );
38 }
39
40 private function getDef(name:String):Class
41 {
42 if( cache[name] )
43 {
44 return cache[name] as Class;
45 }
46 return null;
47 }
48
49 private function addMovie(mc:MovieClip):void
50 {
51 addChild(mc);
52 }
53
54 private function onRightClick(evt:MouseEvent):void{
55 trace(evt.target,evt.currentTarget);
56 }
57 }
58 }

但是就出现了我的问题。

解决方式:修改路径

上方代码路径改为

loader.load(new URLRequest(‘Material.swf‘));
就可以了。
虽然解决了现在的问题但是还是没弄明白为什么,都能把素材加到舞台就是路径不一样而已却影响了鼠标事件。望大牛指点。

ActionScript 3.0
加载外部SWF素材资源MovieClip,SimpleButton不支持鼠标事件

时间: 2024-10-03 13:45:53

ActionScript 3.0 加载外部SWF素材资源MovieClip,SimpleButton不支持鼠标事件的相关文章

转载:Flash AS3.0 加载外部资源(图片,MP3,SWF)的两种方式

Flash AS3.0 加载外部资源(图片,MP3,SWF)的两种方式 出自:http://www.cnblogs.com/top5/archive/2012/08/04/2623464.html 关于AS3加载图片等外部资源,我常用的有两种方式:Loader和Embed,各自的特点,总结如下: Embed:在Flash编译阶段就将资源嵌入,也就是说图片资源是会被编译进swf文件里面去的:这样子的好处是代码比较简洁,使用方便,也不存在加载顺序的问题,缺点是会增大swf文件的体积 Loader:在

[ActionScript 3.0] AS3.0 Loader加载子swf时是否需要指定新的应用程序域ApplicationDomain

实际应用中, Loader加载子swf时是否需要指定新的应用程序域ApplicationDomain,需要择情况而定. 1.当加载的子swf中有流存在时,比如视频或者声音,则最好需要指定新的应用程序域ApplicationDomain,如果没有指定,调用_ldr.unloadAndStop();时无法将子swf中的流从内存中卸载掉,了解原因,请深入了解应用程序域ApplicationDomain,代码如下: var ldr:Loader = new Loader(); var context:L

复制外部加载的swf

复制外部加载的swf是一个相对高级的操作,步骤比较多,过程相对复杂,要阐述清楚原理细节需要很大篇幅的文字,因此,这里我就偷懒不详细写说明了,纯用代码来说明问题,希望对看得懂的朋友起到抛砖引玉的作用.方法1——ByteArray深度复制 var byteLoader:URLLoader = new URLLoader(); byteLoader.dataFormat = URLLoaderDataFormat.BINARY; byteLoader.addEventListener(Event.CO

控制加载的swf动画暂停和播放

外部加载进来的swf动画(无论是as2.0的还是as3.0的)可以控制暂停和播放,声音也能暂停和播放,但是注意的一点,导入的声音必须是“数据流”.请看以下代码: Main.as: package { import flash.display.Sprite; import flash.events.MouseEvent; import flash.text.TextField; /** *@author hypo.chen *@E-mail [email protected] *@data 201

Windows Phone 8加载外部动态链接库DLL(非安装包内的)

Windows Phone 8加载外部动态链接库DLL(非安装包内的) 在<动态加载与插件化>中大概介绍了下,wp8加载非安装包的下动态链接库,这次详细梳理下. 加载外部DLL主要的原理: 通过NtCurrentTeb获得线程环境块 从线程环境块中获得进程环境块 在进程环境块中加载过得DLL链表 从链表中找到kernelbase.dll的模块句柄 从kernelbase.dll中获得LoadLibraryEx函数地址 加载指定地址下的DLL 相关的结构体: typedef struct _CL

PhoneGap 白名单安全机制 navigator.app 加载外部页面返回以及退出介绍

一. Phonegap 白名单安全机制 Phonegap应用的页面大多存在于本地,但有时需要加载外部的Web页面到应用内置的浏览器 视图中已完成特定的应用功能,出于安全性考虑,PhoneGap 设立了白名单安全机制,通过它来 控制能够加载到内置浏览器视图的内容来源. Android 不通过白名单安全机制的话调用外部浏览器 IOS 不通过白名单安全的话 会直接拒绝 二.Android 配置白名单 在res/xml/config.xml这个文件里进行配置 三.IOS 配置 以及 Wp7/wp8配置白

TP3.2加载外部PHPexcel类,实现导入和导出

TP3.2加载外部PHPexcel类,实现导入和导出 导入: 1.将下载好的PHPexcel文件放到libray/Org/Uti/文件夹下,将PHPEXCEL.PHP改为PHPEXCEL.class.php 2.导入类文件 代码: import("Org.Util.PHPExcel");import("Org.Util.PHPExcel.Reader.Excel5"); 3.配置 代码: $objReader = \PHPExcel_IOFactory::creat

JBoss 系列十四:JBoss7/WildFly如何加载外部的文件或properties文件

http://www.tuicool.com/articles/M7ZR3y 原文 http://blog.csdn.net/kylinsoong/article/details/12623997 主题 WildFlyXMLJBoss AS 内容概述 JBoss7/WildFly设底层框架一大亮点的Module class loading,及每一个相对独立的模块看作一个Module,每个Module都有自己的class loader,Module之间可以相互依赖,如下图: 当JBoss7安装完成

背水一战 Windows 10 (11) - 资源: CustomResource, ResourceDictionary, 加载外部的 ResourceDictionary 文件

[源码下载] 作者:webabcd 介绍背水一战 Windows 10 之 资源 CustomResource ResourceDictionary 加载外部的 ResourceDictionary 文件 示例1.演示“CustomResource”相关知识点CustomResourceTest.cs /* * 本例是一个自定义 CustomXamlResourceLoader,用于演示 CustomResource 的使用 */ using Windows.UI.Xaml.Resources;