加载Flex模块的三种方式:
1、使用ModuleLoader加载
<mx:ModuleLoader url="ContactList.swf"/>
2、使用ModuleManager加载
Private function creationHandler():void
{ _moduleInfo= ModuleManager.getModule('ContactList.swf' );
_moduleInfo.addEventListener(ModuleEvent.READY, moduleLoadHandler);
_moduleInfo.load(); }
Private function moduleLoadHandler(evt:ModuleEvent):void {
canvas.addChild(_moduleInfo.factory.create()as DisplayObject);
}
3、 创建弹出Flex模块
Var general:ModuleLoader
general=ModuleLoader(mx.managers.PopUpManager.createPopUp(this,ModuleLoader));
general.url="General.swf";
注意: 在使用AmCharts时不要使用ModuleManager而采用ModuleLoader来记载模块,否则会抛类似异常(截止版本2.0,后续未知):
TypeError: Error #1009: 无法访问空对象引用的属性或方法。
at com.amcharts::AmPieChart/calculatePercents()[D:\projects\flex\amChartsSourcesGumbo\src\com\amcharts\AmPieChart.as:912]
at com.amcharts::AmPieChart/updateData()[D:\projects\flex\amChartsSourcesGumbo\src\com\amcharts\AmPieChart.as:844]
at com.amcharts.chartClasses::AmChart/commitProperties()[D:\projects\flex\amChartsSourcesGumbo\src\com\amcharts\chartClasses\AmChart.as:260]
at mx.core::UIComponent/validateProperties()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\core\UIComponent.as:7772]
at mx.managers::LayoutManager/validateProperties()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\managers\LayoutManager.as:572]
at mx.managers::LayoutManager/doPhasedInstantiation()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\managers\LayoutManager.as:730]
at mx.managers::LayoutManager/doPhasedInstantiationCallback()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\managers\LayoutManager.as:1072]
关于amCharts的破解方式启示:
A、新建as文件,并继承AmSerialChart,代码如下:
public function AmSerialChart()
{
super();
}
B、随便添加一个公共方法用来做断点跟踪,代码如下:
public function onClickTest():void{
this;
}
C、[img]
[img]http://dl.iteye.com/upload/attachment/292763/99fa4184-61b3-3ad9-91bf-54e6e533489f.png[/img]
[/img]
在跟踪过程中发现_amchartsLink是一个可疑的display对象,所以试着设置它的可见性,当然这里面需要耐心的找,幸运的话会很快找到,当然也有可能找不到
D、继续找创建该对象的方法,并重写该方法,我们可以用override关键字查找可疑方法,这里找到了createChildren()方法,所以我们重写该方法,代码如下:
override protected function createChildren():void{
super.createChildren();
if (_amchartsLink){
_amchartsLink.visible=false;
/*
_amchartsLink.alpha=0;
_amchartsLink.width=0;
_amchartsLink.height=0;
*/
}
}
在这里设置_amchartsLink的visible属性为false,这时再运行程序,使用你扩展过的组件看一下,水印已经没有了
当然上面这种方法并没有真正破解,只是投机取巧绕开了大门爬墙过去了
^_^ ^_^ 楼主的这种思路值得借鉴... ...
插曲: 调试过程中出现异常
异常一:
C:\WINDOWS\system32\Macromed\Flash\NPSWF32.dll
Flash Builder 找不到所需的 Adobe Flash Player 调试器版本。您可能需要安装调试器版本的 Flash Player 或重新安装 Flash Player。
是否要尝试使用当前版本进行调试?
参照网友的解决方案:
打开 目录: C:\Program Files\Adobe\Adobe Flash Builder 4\player\win
安装 Install Flash Player 10 Plugin.exe 问题解决 (非IE系列)
IE系列可能还需要安装 "Install Flash Player 10 ActiveX.exe"(网友是先安装activeX.exe)
此举解决了异常一,接着又出现异常二:
最近安装的flash builder 4在debug的时候会弹出错误提示信息:
连接失败;会话已超时。
确保:
1. 在打开调试功能的情况下了 Flash 。
2. 您正在运行 Flash Player 的调试器版本。
有网友也是采取的异常一的解决方案给解决的, 而我的仍然不行。
记得当初刚安装好FB4时是能够进行调试的(应该是调试版的fb呀), 困惑中... ...
Debug版本与flash版本不一致?(debug是随fb一起的呀...),换debug...
重新安装fb4(此种方法极端了点... )
^_^ ^_^ 过了一段时间来使用调试功能其又生效了, 看来是被浏览器的缓存给害了!
1、使用ModuleLoader加载
<mx:ModuleLoader url="ContactList.swf"/>
2、使用ModuleManager加载
Private function creationHandler():void
{ _moduleInfo= ModuleManager.getModule('ContactList.swf' );
_moduleInfo.addEventListener(ModuleEvent.READY, moduleLoadHandler);
_moduleInfo.load(); }
Private function moduleLoadHandler(evt:ModuleEvent):void {
canvas.addChild(_moduleInfo.factory.create()as DisplayObject);
}
3、 创建弹出Flex模块
Var general:ModuleLoader
general=ModuleLoader(mx.managers.PopUpManager.createPopUp(this,ModuleLoader));
general.url="General.swf";
注意: 在使用AmCharts时不要使用ModuleManager而采用ModuleLoader来记载模块,否则会抛类似异常(截止版本2.0,后续未知):
TypeError: Error #1009: 无法访问空对象引用的属性或方法。
at com.amcharts::AmPieChart/calculatePercents()[D:\projects\flex\amChartsSourcesGumbo\src\com\amcharts\AmPieChart.as:912]
at com.amcharts::AmPieChart/updateData()[D:\projects\flex\amChartsSourcesGumbo\src\com\amcharts\AmPieChart.as:844]
at com.amcharts.chartClasses::AmChart/commitProperties()[D:\projects\flex\amChartsSourcesGumbo\src\com\amcharts\chartClasses\AmChart.as:260]
at mx.core::UIComponent/validateProperties()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\core\UIComponent.as:7772]
at mx.managers::LayoutManager/validateProperties()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\managers\LayoutManager.as:572]
at mx.managers::LayoutManager/doPhasedInstantiation()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\managers\LayoutManager.as:730]
at mx.managers::LayoutManager/doPhasedInstantiationCallback()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\managers\LayoutManager.as:1072]
关于amCharts的破解方式启示:
A、新建as文件,并继承AmSerialChart,代码如下:
public function AmSerialChart()
{
super();
}
B、随便添加一个公共方法用来做断点跟踪,代码如下:
public function onClickTest():void{
this;
}
C、[img]
[img]http://dl.iteye.com/upload/attachment/292763/99fa4184-61b3-3ad9-91bf-54e6e533489f.png[/img]
[/img]
在跟踪过程中发现_amchartsLink是一个可疑的display对象,所以试着设置它的可见性,当然这里面需要耐心的找,幸运的话会很快找到,当然也有可能找不到
D、继续找创建该对象的方法,并重写该方法,我们可以用override关键字查找可疑方法,这里找到了createChildren()方法,所以我们重写该方法,代码如下:
override protected function createChildren():void{
super.createChildren();
if (_amchartsLink){
_amchartsLink.visible=false;
/*
_amchartsLink.alpha=0;
_amchartsLink.width=0;
_amchartsLink.height=0;
*/
}
}
在这里设置_amchartsLink的visible属性为false,这时再运行程序,使用你扩展过的组件看一下,水印已经没有了
当然上面这种方法并没有真正破解,只是投机取巧绕开了大门爬墙过去了
^_^ ^_^ 楼主的这种思路值得借鉴... ...
插曲: 调试过程中出现异常
异常一:
C:\WINDOWS\system32\Macromed\Flash\NPSWF32.dll
Flash Builder 找不到所需的 Adobe Flash Player 调试器版本。您可能需要安装调试器版本的 Flash Player 或重新安装 Flash Player。
是否要尝试使用当前版本进行调试?
参照网友的解决方案:
打开 目录: C:\Program Files\Adobe\Adobe Flash Builder 4\player\win
安装 Install Flash Player 10 Plugin.exe 问题解决 (非IE系列)
IE系列可能还需要安装 "Install Flash Player 10 ActiveX.exe"(网友是先安装activeX.exe)
此举解决了异常一,接着又出现异常二:
最近安装的flash builder 4在debug的时候会弹出错误提示信息:
连接失败;会话已超时。
确保:
1. 在打开调试功能的情况下了 Flash 。
2. 您正在运行 Flash Player 的调试器版本。
有网友也是采取的异常一的解决方案给解决的, 而我的仍然不行。
记得当初刚安装好FB4时是能够进行调试的(应该是调试版的fb呀), 困惑中... ...
Debug版本与flash版本不一致?(debug是随fb一起的呀...),换debug...
重新安装fb4(此种方法极端了点... )
^_^ ^_^ 过了一段时间来使用调试功能其又生效了, 看来是被浏览器的缓存给害了!