flex IModuleInfo 注册事件失效问题
在flex 开发项目中,很多都会使用Module来减少application加载过大的问题。Module也确实解决了这个问题。
但是在使用Module过程中需要注意的一点 非常关键的一点那就是 定义一个IModuleInfo的时候 一定要记得把定义成全局变量哦。不然就会出现 第一次加载不了 二第二次 第三次。。。。都可以的效果。不注意这点找死了都找不出什么原因来。
为什么要定义成全局的。
原因看了下面的英文就知道了:
References to IModuleInfo must be maintained to keep the event listeneres alive. If the IModuleInfo is defined in function local scope the event listeners may get garbage collected.
google 的翻译是这样说的:
以IModuleInfo参考必须保持保持事件listeneres活着。如果IModuleInfo定义在函数的局部范围的事件监听器可能会被垃圾收集。
也就是说 在使用IModuleInfo 过程中始终要保持IModuleInfo 变量的存在,不然第一次就会被当做垃圾处理,才使得他注册事件第一次执行总是失效的问题。
相关文档:
document.body.oncopy = function() {
if (window.clipboardData) {
setTimeout(function() {
var text = clipboardData.getData("text");
......
我个人觉得这个自定义时间封装性很好,但是有点复杂,不建议简单编程中使用
创建一个MXML组件,建自定义事件
<?xml version="1.0" encoding="utf-8"?>
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
<!--[CDATA[
private function clickHandler():void{
// var m ......
了解Flex程序的生命周期
Flex程序从本质上讲,就是使用了(由AS编写的)Flex框架的Flash程序。
但在Flex程序中可以忽略timeline这个概念,所有的内容都集于一帧。
事实上Flex程序中的根,是继承flash.display.MovieClip的mx.managers.SystemManager。
SystemManager有两帧。第一帧是预加载程序,第二帧是主程序。
因此 ......
FLEX中所有的布局都需要容器。<mx:Application>标签实际上就是一个容器。每个容器都有一定的规则来确定子元素的排列方式,也就是本文讨论的FLEX容器布局规则。
VBox
子元素沿垂直方向排列。每个子元素都会绘制在前一个子元素的下方。
HBox
子元素沿水平方向排列。每个子元素都会绘制在前一个子元素的右方。
Canv ......
选定矩形的一个顶点为起点,开始画
x0:顶点横坐标
y0:顶点纵坐标
x1:水平线上另一顶点的横坐标
y1:水平线上另一丁点的纵坐标
private function drawDottenRect(g:Graphics,
x0:Number,
&nbs ......