




已阅读5页,还剩28页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Copyright 2010 知圆行方 Page 1 of 33 FlexFlex 笔记笔记 Copyright 2010 知圆行方 Page 2 of 33 目目 录录 1FLEX 3 4 1 1FLEX3 标签 4 1 2FLEX3 元数据标签 6 1 3事件监听机制 6 1 4程序调试与发布 7 2通信通信 11 2 1WEBSERVICE 方式 11 3FLEX 与与 FLASH 通信通信 14 3 1LOADER方法 14 3 2直接加载 SWF 中的图像文件 14 3 3EMBED 方式 15 3 4MC动画的翻转 15 4TCP 通信通信 16 4 1SOCKET 16 4 2类 16 4 3SOCKET通讯遇到的问题 18 5UI 19 5 1区块绘画 19 5 2滑出效果 19 5 3样式 19 5 4CANVAS 拖动 20 5 5菜单 20 5 6弹出窗口 22 5 7加载 23 6各种杂项各种杂项 24 6 1转义字符 24 6 2技巧杂锦 25 6 3跳转 链接打开 关闭 重载 26 6 4时间延迟 28 6 5反射 29 6 6和 JAVA程序整合调试 29 6 7FOR 循环 29 6 8图片的加载问题 30 6 9XML的加载方式 30 6 10编译 31 6 11引用 SWC 中存在的图片 31 Copyright 2010 知圆行方 Page 3 of 33 6 12人物行走 31 6 13日志的打印 32 Copyright 2010 知圆行方 Page 4 of 33 1 Flex 3 1 1Flex3 标签标签 1 1 1 标签标签 它定义始终是它定义始终是 Flex 应用程序的根标签应用程序的根标签 的的 Application 容器 容器 1 1 1 1Application 对顶级应用程序的引用 对顶级应用程序的引用 1 1 1 2viewSourceURL 可以从中查找源码可以从中查找源码 1 1 1 3frameRate 指定应用程序的帧速率指定应用程序的帧速率 1 1 1 4pageTitle 指定在浏览器的标题栏中显示的字符串指定在浏览器的标题栏中显示的字符串 1 1 1 5xmlns xml name space 用于定义当前文件将会使用到的命名空间用于定义当前文件将会使用到的命名空间 1 1 1 6layout 表示在不特别设置的情况下 当前页遵循的页面布局 有三表示在不特别设置的情况下 当前页遵循的页面布局 有三 种布局方式 种布局方式 absolute vertical horizontal 1 1 1 7layout absolute 时 如果时 如果 application 有另外的布局属性有另外的布局属性 verticalAlign 和和 horizontalAlign 不起作用不起作用 1 1 1 7 12 当 layout vertical 或 layout horizontal 时 具体的 排列可以由 verticalAlign 和 horizontalAlign 控制 1 1 1 8Width 定义当前定义当前 application 的宽度的宽度 1 1 1 9Height 定义当前定义当前 application 的长度的长度 1 1 1 10preinitialize initialize creationComplete applicationComplete addedToStage 这这四四个都是在个都是在 application 运行过程中运行过程中 会触发的事件会触发的事件 触发顺序是触发顺序是 preinitialize creationComplete applicationComplete addedToStage 1 1 1 10 1preinitialize 在所有的初始化之前触发 没有子组件的定义 但是可以引用组件的变量 1 1 1 10 2initialize 当所有子组件生成完成后触发 在这个时间点还没有组件被渲染出来 1 1 1 10 3creationComplete 组件定义完成并已经在显示列表 1 1 1 10 4applicationComplete 所有的组件初始化完成并显示 Copyright 2010 知圆行方 Page 5 of 33 1 1 1 11horizontalAlign 水平对齐水平对齐 1 1 1 12verticalAlign 垂直垂直 1 1 1 13horizontalScrollPolicy 水平滚动条是否显示水平滚动条是否显示 默认为自动默认为自动 1 1 1 14verticalScrollPolicy 垂直滚动条是否显示垂直滚动条是否显示 默认为自动默认为自动 1 1 2 标签定义包含一个标题栏 一个标题 一条状态消标签定义包含一个标题栏 一个标题 一条状态消 息 一个边框和其子级的一个内容区域的息 一个边框和其子级的一个内容区域的 Panel 容器 容器 1 1 2 1layout 表示在不特别设置的情况下 当前页遵循的页面布局 有三表示在不特别设置的情况下 当前页遵循的页面布局 有三 种布局方式 种布局方式 absolute vertical horizontal 1 1 2 1 1layout absolute 时 如果 application 有另外的布局属性 verticalAlign 和 horizontalAlign 不起作用 1 1 2 1 2当 layout vertical 或 layout horizontal 时 具体的排列 可以由 verticalAlign 和 horizontalAlign 控制 1 1 2 2Status 标题栏状态区域中的文本 标题栏状态区域中的文本 即右上角的标题即右上角的标题 1 1 2 3Title 容器标题容器标题 1 1 2 4titleIcon 容器标题中指定的图标容器标题中指定的图标 这里添加图标不能直接写入地址这里添加图标不能直接写入地址 1 1 2 4 1如果是导入一个图直接使用 titleIcon Embed E pic lm gif 1 1 3 标签代表一个标签代表一个 Label 控件控件 一个用于显示文本的非一个用于显示文本的非 常简单的用户界面组件 结构设常简单的用户界面组件 结构设计计 Copyright 2010 知圆行方 Page 6 of 33 1 2Flex3 元数据标元数据标签签 1 2 1 Bindable 元数据标签 它在代码中的作用就是向编译器提供如 元数据标签 它在代码中的作用就是向编译器提供如 何编译程序的信息 何编译程序的信息 1 2 1 1它的最大作用是使程序组件间的数据同步变得容易 它的最大作用是使程序组件间的数据同步变得容易 在开发中通常在开发中通常 用上用上 Bindable 作用在视图控件上 如给它绑定一个对象 则以后只需要在逻辑层作用在视图控件上 如给它绑定一个对象 则以后只需要在逻辑层 更改这个对象的值 则视图层的控件数据会自动更新 同步 而不再需要手动更改这个对象的值 则视图层的控件数据会自动更新 同步 而不再需要手动 去更新视图 去更新视图 1 2 2 Embed 可以在可以在 Flex 应用程序中嵌入各种元素 应用程序中嵌入各种元素 1 2 2 1被嵌入的元素将编译进被嵌入的元素将编译进 SWF 文件 文件 它们不是在运行时载入的 所它们不是在运行时载入的 所 以不必为应用程序部署原元素 可以嵌入的图像格式有以不必为应用程序部署原元素 可以嵌入的图像格式有 PNG JPEG GIF 嵌 嵌 入后可以同时使用它的多个实例 入后可以同时使用它的多个实例 1 2 2 2如果只有单个实例如果只有单个实例 可以使用可以使用 Embed test png 1 2 2 3如果需要调用多次如果需要调用多次 1 2 2 3 11 Embed source test png 1 2 2 3 22 public var Hourglass Class 1 2 2 3 33 titleIcon Hourglass 1 2 3 DefaultProperty 元数据标签用来将一个单一属性设定为某个类元数据标签用来将一个单一属性设定为某个类 的默认属性 的默认属性 1 2 4 Event 元数据标签用来声明那些被自定义类的方法元数据标签用来声明那些被自定义类的方法 1 3事件监听机制事件监听机制 1 3 1添加监听添加监听 dispatchEvent new Event PlayComplete 1 3 2Flex 的可视化组件对象都继承了的可视化组件对象都继承了 EventDispatcher 类 因此它们类 因此它们 都支持事件注册方法都支持事件注册方法 addEventListener 也就是都可以添加一个监听器 也就是都可以添加一个监听器 1 3 2 1这个监听器的添加这个监听器的添加 也就意味着也就意味着 如果某个事件发生的时候如果某个事件发生的时候 那么就执那么就执 行某个方法行某个方法 其中该方法的属性有其中该方法的属性有 1 3 2 1 1type String 事件类型 1 3 2 1 2listener Function 处理事件的侦听器函数 此函数必须接 Copyright 2010 知圆行方 Page 7 of 33 受 Event 对象作为其唯一的参数 并且不能返回任何结果 如下面的示例所 示 function evt Event void 1 3 2 1 3useCapture Boolean default false 此参数适用于 SWF 内容所使用的 ActionScript 3 0 显示列表体系结构中的显示对象 1 3 2 1 4priority int default 0 事件侦听器的优先级 优先 级由一个带符号的 32 位整数指定 数字越大 优先级越高 1 3 2 1 5useWeakReference Boolean default false 确定对侦 听器的引用是强引用 还是弱引用 强引用 默认值 可防止您的侦听器被当作垃圾回收 弱引用则 没有此作用 1 4程序调试与发布程序调试与发布 1 4 1使用使用 Flex 自带的自带的 Debug 工具工具 调试调试 1 4 1 1打开右上角的打开右上角的 perspective 选择选择 flex Debugging 就进入了 就进入了 debug 环境 环境 1 4 1 2上面多了两个窗口 一个是上面多了两个窗口 一个是 Debug 一个是 一个是 Variables Breakpoints 和和 Expressions 三个子窗口三个子窗口 分别显示错误信息和调试输出 包括分别显示错误信息和调试输出 包括 trace 信息信息 1 4 1 3然后我们可以设置断点然后我们可以设置断点 你看就像这样你看就像这样 便于单步调试便于单步调试 1 4 1 3 1 Copyright 2010 知圆行方 Page 8 of 33 1 4 1 4运行的时候使用运行的时候使用 Debug AS 运行即可运行即可 1 4 1 5当程序运行到断点处当程序运行到断点处 按图示点击需要的操作按图示点击需要的操作 1 4 1 5 1 1 4 1 6并且可以看到相关属性值和名称并且可以看到相关属性值和名称 1 4 1 6 1 Copyright 2010 知圆行方 Page 9 of 33 1 4 1 7还有就是执行到这一步以前某个属性的值还有就是执行到这一步以前某个属性的值 只需要把鼠标移动到相只需要把鼠标移动到相 应点即可应点即可 1 4 2发布工程发布工程 1 4 2 1选择你要发布的程序的选择你要发布的程序的 Project 名字 比如名字 比如 FlexMail 然后右键选择然后右键选择 Export 1 4 2 2然后选择然后选择 release Build 进行导出进行导出 1 4 2 2 1 Copyright 2010 知圆行方 Page 10 of 33 1 4 2 3然后选择对应的工程然后选择对应的工程 入口方法和源码入口方法和源码 以及导出路径以及导出路径 1 4 2 3 1 1 4 2 4最后点击最后点击 Finish 即可即可 生成一个对应的工程项生成一个对应的工程项 Copyright 2010 知圆行方 Page 11 of 33 2 通信通信 2 1WebService 方式方式 2 1 1WebService 主要用到的技术点主要用到的技术点 2 1 1 1XML 描述数据的标准方法描述数据的标准方法 2 1 1 2SOAP 表示信息交换的协议表示信息交换的协议 2 1 1 3WSDL Web 服务描述语言服务描述语言 2 1 1 4UDDI 通通用用描描述述 发发现现与与集集成成 它它是是一一种种独独立立于于平平台台的的 基基于于XML 语语言言的的用用于于在在互互联联网网上上描描述述商商务务的的协协议议 Copyright 2010 知圆行方 Page 12 of 33 2 1 2我的应用程序需要与服务端的我的应用程序需要与服务端的 web 服务进行通信 服务进行通信 Web 服务提服务提 供供 WSDL 信息表述可使用的方法和调用这些方法的具体信息 一般用信息表述可使用的方法和调用这些方法的具体信息 一般用 于访问与于访问与 SOAP 兼容的兼容的 Web 服务服务 2 1 3WebService 属性属性 2 1 3 1result 事件就是当事件就是当 WebService 返回结果时调用的方法返回结果时调用的方法 2 1 3 2Fault 事件就是当事件就是当 WebService 返回错误时调用的方法返回错误时调用的方法 2 1 4WSDL 文件的属性文件的属性 2 1 4 1 指定客户端协议 例如这里的指定客户端协议 例如这里的 Flex 应用程序使用应用程序使用 web 服务进行通信 绑定的协议有服务进行通信 绑定的协议有 SOAP HTTP GET HTTP POST 和多功能因特 和多功能因特 网邮件扩展网邮件扩展 MIME Flex 只支持只支持 SOAP 绑定 绑定 2 1 4 2指定错误显示信息指定错误显示信息 2 1 4 3指定客户端发送给指定客户端发送给 web 服务的信息 服务的信息 2 1 4 4定义定义 web 服务操作传输的数据服务操作传输的数据 2 1 4 5定义定义 和和 的标签集合的标签集合 2 1 4 6指定指定 web 服务发送给客户端的信息服务发送给客户端的信息 2 1 4 7指定指定 web 服务的终端 它关联绑定和网络地址 服务的终端 它关联绑定和网络地址 2 1 4 8定义定义 web 服务提供的操作服务提供的操作 2 1 4 9定义一组定义一组标签集合 每个服务映射到一个标签集合 每个服务映射到一个 标签 以指定不同的访问方式 标签 以指定不同的访问方式 2 1 5定义定义 web 服务信息使用的数据类型服务信息使用的数据类型 2 1 6调用调用 服务端方法的方式服务端方法的方式 2 1 6 1click webService getWeatherbyCityName inputString text 2 1 6 1 1webService 是在 mx WebService 标签中定义的 Id 2 1 6 1 2其中 getWeatherbyName city String 这个就是获取 WebService 服务端的该方法 Copyright 2010 知圆行方 Page 13 of 33 2 1 7主要用到的类主要用到的类 ArrayCollection 2 1 7 1Length 属性属性 长度长度 2 1 7 2getItemAt index int prefetch int 0 方法方法 2 1 7 2 1index 需要拿出的对象在集合中的位置 2 1 7 2 2prefetch 指示当项目不是本地项目时 在请求期间要获取的项 目的方向和编号 2 1 7 3注意注意 这里可以不用此方法这里可以不用此方法 直接好像数组一样取值直接好像数组一样取值 例例 varvar weatherInfo ArrayCollection event result asas ArrayCollection myWeatherReport text weatherInfo i n n Copyright 2010 知圆行方 Page 14 of 33 3 Flex 与与 Flash 通信通信 3 1Loader 方法方法 3 1 1加载加载流程流程 3 1 1 1定义应用程序域为定义应用程序域为 正在其中执行代码的当前应用程序域正在其中执行代码的当前应用程序域 3 1 1 2public var lLoader Loader new Loader 3 1 1 3aLoaderContext LoaderContext new LoaderContext 3 1 1 4aLoaderContext checkPolicyFile false 3 1 1 5aLoaderContext applicationDomain new ApplicationDomain 3 1 1 6lLoader load new URLRequest sUrl aLoaderContext 3 1 1 7var mcFlashMc MovieClip lLoader content as MoiveClip 3 1 1 8mcFlashMc 就可以自由的调用就可以自由的调用 swf 文件中文件中 MainTimeline 类中的方类中的方 法法 也就是主时间轴中的方法也就是主时间轴中的方法 3 1 2加载元件加载元件 3 1 2 1查看是否存在查看是否存在 lLoader contentLoaderInfo applicationDomain hasDefinition aClassName 3 1 2 2var aSwfClass Class lLoader contentLoaderInfo applicationDomain getDefinition aClassName as Class return new aSwfClass 3 1 3在在 Flash 文件中文件中 的设计方法的设计方法 一般在主时间轴上没有元件一般在主时间轴上没有元件 通过通过 New 的方式来创建相应使用的元件的方式来创建相应使用的元件 3 1 4Flash 中中 触发事件触发事件 3 1 4 1dispatchEvent new Event ChatShow 3 2直接加载直接加载 Swf 中的图像文件中的图像文件 Copyright 2010 知圆行方 Page 15 of 33 3 2 1Var resClass class myLoader contentLoaderInfo applicationDomain getDefinition Resourc eLib as Class 3 2 2 var imageClass Class new resClass getImage as3 logo as Class 3 2 3 base source new Bitmap new imageClass 287 101 3 3Embed 方式方式 3 3 1 加载指定的精灵相关加载指定的精灵相关 Swf 的类的类 3 3 1 1 Embed source image spiritMove swf symbol SpiritTurn 3 3 1 2private var cGrassSpiritClass Class 3 3 1 3var mcGrassSpiritSwf MovieClip new cGrassSpiritClass as MovieClip 即可即可 3 3 2如果是一个如果是一个 大型的元件大型的元件 里面有大量的其他元件里面有大量的其他元件 那么就那么就 3 3 2 1Var o object new cGrassSpiritClass 否则无法强转否则无法强转 会得到一个会得到一个 空值空值 3 4mc 动画的翻转动画的翻转 3 4 1水平翻转水平翻转 3 4 1 1mcPkSwf scaleX 1 3 4 2垂直翻转垂直翻转 3 4 2 1mcPkSwf rotation 180 3 4 2 2或者或者 sprite scaleY 1 3 5动画的播放控制动画的播放控制 3 5 1播放弯沉给以后执行某方法播放弯沉给以后执行某方法 addFrameScript 到某帧执行到某帧执行 totalFrames 总帧数总帧数 3 5 1 1pkSwfChild addFrameScript pkSwfChild totalFrames 1 addEventScript Copyright 2010 知圆行方 Page 16 of 33 4 Tcp 通信通信 4 1Socket 4 1 1Socket 事件事件 4 1 1 1Colse 事件事件 Event CLOSE 4 1 1 1 1在服务器关闭套接字连接时分派 仅在服务器关闭连接时分派 close 事件 在调用 Socket close 方法时不分派该事件 4 1 1 2connect 事件事件 Event CONNECT 4 1 1 2 1在建立网络连接后分派 4 1 1 3ioError 事件事件 IOErrorEvent IO ERROR 4 1 1 3 1在出现输入 输出错误并导致发送或加载操作失败时分派 4 1 1 4securityError事件事件 SecurityErrorEvent SECURITY ERROR 4 1 1 4 1若对 Socket connect 的调用尝试连接到调用方安全沙箱外部的 服务器或端口号低于 1024 端口 则进行分派 4 1 1 5socketData 事件事件 ProgressEvent SOCKET DATA 4 1 1 5 1在套接字接收到数据后分派 socketData 类型的事件不使用 ProgressEvent bytesTotal 属性 4 2类类 4 2 1其实在其实在 Flex Socket 通讯中通讯中 最重要的无非最重要的无非 3 个类个类 4 2 2载体载体类类 socket 数据数据类类 ByteArray 键值对类键值对类 Object 4 2 2 1Socket 类必用方法类必用方法 4 2 2 1 1socket connect serverIP port 连接服务器 第一个参数是 服务器 iP 第二个是端口 4 2 2 1 2socket addEventListener ProgressEvent SOCKET DATA socketDataHandler 添加监听事件 第一个参数是事件 第二个是执行的方 法 4 2 2 1 3socket readBytes bytes 0 socket bytesAvailable 读取 字节流 第一个参数是需要注入的字节流对象 第二个是开始位置 第三个是结 束位置 4 2 2 1 4socket writeMultiByte user name user name name n n gbk gbk Copyright 2010 知圆行方 Page 17 of 33 这个是写入到发送队列的方法 不过不会马上传送过去 因为还要等 socket flush 第一个参数是 String 类型的字符串 第二个是编码方式 4 2 2 1 5socket writeObject obj 4 2 2 2ByteArray 类类 4 2 2 2 1bytes uncompress 解压缩方法 4 2 2 2 2readObject 返回一个 Obj 类 是以 AMF 格式进行序列化的 4 2 2 3这里的这里的 Object 并不是完全指父类并不是完全指父类 而是一个类似键值对的类而是一个类似键值对的类 4 2 2 3 1在需要传输的时候 创建一个 Object 类型 然后直接赋值即可 4 2 2 3 2如 var o Object new Object 4 2 2 3 3O name cola 这里即可 然后再 Java 端直接接收 Copyright 2010 知圆行方 Page 18 of 33 4 2 3主要的数据流程是主要的数据流程是 4 2 3 1在客户端从组件中获取在客户端从组件中获取 text 4 2 3 2创建一个需要的对象创建一个需要的对象 4 2 3 3然后通过然后通过 Socket 的的 writeObject 的的方法传输方法传输 4 2 3 4在在 Java 端端 收到数据传输收到数据传输 然后获取到相应的字节流然后获取到相应的字节流 4 2 3 5通过通过 socket 发还发还 Flex 4 2 3 6通过通过 Socket 的的 readBytes 获取到传输过来的字节流获取到传输过来的字节流 4 2 3 7通过通过 ByteArray 自带的解压缩方法自带的解压缩方法 uncompress 解压缩解压缩 4 2 3 8然后通过然后通过 ByteArray 的的 readObject 方法方法 返回一个返回一个 Object 类类 这里这里 并不奇怪并不奇怪 这里的这里的 Object 并不是一个父类别并不是一个父类别 而是一个普通类而是一个普通类 并且是并且是 Key Value 的的 形式形式 也就是说也就是说 这个就是这个就是 HashMap 类在类在 Flex 的表达形式的表达形式 只需要直接拿出即可只需要直接拿出即可 也就是假设也就是假设 map put id 111 那么只需要那么只需要 obj id 就可以返回就可以返回 111 4 2 3 9最后显示回最后显示回 Flex 组件组件 4 2 3 10注意注意 不论在不论在 Flex 创建之前传输的是什么类型创建之前传输的是什么类型 自定义也好自定义也好 非自定义非自定义 也罢也罢 但是在接收传回的数据时但是在接收传回的数据时 直接使用直接使用 Object 类型接收即可类型接收即可 4 3Socket 通讯遇到的问题通讯遇到的问题 4 3 1数据粘包问题数据粘包问题 4 3 1 1在进行第一次压力测试的时候发现在进行第一次压力测试的时候发现 同时发送的数据同时发送的数据 一般只能收到一般只能收到 其中的几条其中的几条 甚至更少甚至更少 后来发现后来发现 Socket 使用的二进制传输方式使用的二进制传输方式 很容易在接收的时很容易在接收的时 候候 分不清数据的头尾分不清数据的头尾 也就是说也就是说 无法正确的找到对应的传输数据无法正确的找到对应的传输数据 4 3 1 2解决方法解决方法 在发送前进行简单封包在发送前进行简单封包 加入包的长度数据加入包的长度数据 Copyright 2010 知圆行方 Page 19 of 33 5 UI 5 1区块绘画区块绘画 5 1 1血条绘画血条绘画 5 1 1 1使用使用 Sprite 显示类显示类 并且使用并且使用 Graphics 类进行绘画类进行绘画 5 1 1 2beginFill 简单填充颜色简单填充颜色 beginGradientFill 渐变填充渐变填充 5 1 1 3显示到界面显示到界面 因为因为 Sprite 并没有继承与并没有继承与 UIComponent 所以不能直接所以不能直接 显示显示 我们可以使用我们可以使用 容器容器 Id rawChildren addChild Sprite 的方式来显示到界面的方式来显示到界面 上上 5 1 2Sprite 和和 Shape 的区别的区别 5 1 2 1Sprite 对象是显示对象容器 而对象是显示对象容器 而 Shape 对象不是 并且不能包含子对象不是 并且不能包含子 显示对象 由于此原因 显示对象 由于此原因 Shape 对象会比包含相同图形的对象会比包含相同图形的 Sprite 对象消耗的内对象消耗的内 存少 但是 存少 但是 Sprite 对象支持鼠标单击事件 而对象支持鼠标单击事件 而 Shape 对象不支持 对象不支持 5 2滑出效果滑出效果 5 2 1需要滑动的组件需要滑动的组件 添加添加 moveEffect Move 5 2 2调用默认方法调用默认方法 chat canvas move 229 5 340 5 3样式样式 5 3 1鼠标样式鼠标样式 5 3 1 1CursorManager setCursor imageClass 自定义样式自定义样式 5 3 1 2CursorManager setBusyCursor 忙碌忙碌 5 3 1 3手型手型 将组件中如下两个修改即可将组件中如下两个修改即可 5 3 1 3 1useHandCursor true 5 3 1 3 2buttonMode true 5 3 1 3 3如果不为 Button 则还要修改 mouseChildren false Copyright 2010 知圆行方 Page 20 of 33 5 3 2各种各种 非非 Image 类型的类型的 图片样式图片样式 5 3 2 1 Embed source images pk sa button png 5 3 2 2var skillImage1 Class 5 3 2 3skill 1 setStyle icon skillImage1 5 4Canvas 拖动拖动 5 4 1监听事件监听事件 5 4 1 1this addEventListener MouseEvent MOUSE UP onMouseEventHandler 鼠标松开点击鼠标松开点击 5 4 1 2 this addEventListener MouseEvent MOUSE DOWN onMouseEventHandler 鼠标点击鼠标点击 5 4 2执行方法执行方法 5 4 2 1switch evt type 5 4 2 2鼠标点击时鼠标点击时 启动拖动启动拖动case mouseDown evt currentTarget startDrag break 5 4 2 3松开点击时松开点击时 关闭拖动关闭拖动 case mouseUp evt currentTarget stopDrag break 5 4 2 4 default break 5 4 2 5 5 5菜单菜单 5 5 1标准下拉菜单标准下拉菜单 mx ComboBox 5 5 1 1例子例子 left center right Copyright 2010 知圆行方 Page 21 of 33 5 5 2menu 菜单菜单 5 5 2 1例子例子 private function init void 另一种创建方式 menu Menu createMenu popUpButton xmlDP false 第一个参数 用于放置 Menu 控件的容器 第一个参数 数据来源 第三个参数 是否显示根节点 menu new Menu 获取显示的属性 menu labelField label 获取数据文件 menu dataProvider xmlDP 是否显示根节点 menu showRoot false 长度 menu width popUpButton width 增加监听事件 menu addEventListener itemClick itemClickHandler 指定要弹出的对象 popUpButton popUp menu private function itemClickHandler event MenuEvent void 获取选择的值 var label String event item label 重命名 popUpButton label Put in label 关闭该弹出 popUpButton close 绑定点击 menu selectedIndex event index xml文件 按钮 Copyright 2010 知圆行方 Page 22 of 33 5 5 3右键菜单右键菜单 5 5 3 1右键菜单右键菜单 添加一个菜单条添加一个菜单条 5 5 3 1 1var contextMenuItem ContextMenuItem new ContextMenuItem test 5 5 3 1 2contextMenu customItems push contextMenuItem 5 5 3 1 3this contextMenu customItems push contextMenuItem 5 6弹出窗口弹出窗口 5 6 1PopUpManager 方法方法 5 6 1 1创建一个弹出子窗口创建一个弹出子窗口 var pop MenuTrainComponent MenuTrainComponent PopUpManager createPopUp this MenuTrainComponent false 5 6 1 1 1其中其中 MenuTrainComponent 为我们自定义的 Component 5 6 1 1 2最后一个最后一个 falsefalse 是表示是否锁定背景是表示是否锁定背景 5 6 1 2把弹出的窗口居中显示把弹出的窗口居中显示 5 6 1 3PopUpManager centerPopUp pop 5 6 2传值问题传值问题 5 6 2 1使用使用 static 类型的变量类型的变量 可以在子窗口中直接调用可以在子窗口中直接调用 例如例如 TestChat numberTest 5 6 2 1 1这里的 TestChat 是父窗口的 mxml 5 6 2 1 2numberTest 就是哪个 Static 的变量 5 6 2 2使用监听器使用监听器 思路思路 就是就是 5 6 2 2 11 addEventListener test update 创建一个自定名称的 Event 事件 5 6 2 2 2然后给子窗口的 公共变量赋值 a 5 6 2 2 3在弹出的子窗口中 修改 a 5 6 2 2 4dispatchEvent newnew Event test test 派遣一个自定义的事件 5 6 2 2 5然后 父窗口就会触发 update 方法 Copyright 2010 知圆行方 Page 23 of 33 5 6 2 2 6然后就直接去 子窗口中取值 然后赋值给自己 5 6 2 3给予父窗口给予父窗口 5 6 2 3 1这个在 创建了子窗口后 添加 pop owner this 5 6 2 3 2然后再子窗口中可以直接 TestChat this owner 强转得到父窗 口 5 6 3背景问题背景问题 如果弹出窗口设置为如果弹出窗口设置为 模态模态 也就是锁定窗口时也就是锁定窗口时 背景为白背景为白 色半透明的色半透明的 5 6 3 1这里如果想修改就可以在这里如果想修改就可以在 住入口类的住入口类的 Application 中加入样式中加入样式 5 6 3 1 1modalTransparencyBlur 0 模糊度 5 6 3 1 2modalTransparencyColor 0 x000000 背景色 5 6 3 1 3modalTransparency 0 3 背景透明度 5 6 3 1 4modalTransparencyDuration 200 过度时间 5 6 4Alert show 5 6 4 1这个方法其实相当的强大这个方法其实相当的强大 如如 5 6 4 1 1Alert show 战斗失败战斗失败 Alert OK nullnull gotoUrl 当点 击弹出的任何按钮以后 执行 gotoUrl 方法 5 6 4 1 2private function gotoUrl aCloseEvent CloseEvent void 第四个参数其实也是一个监听参数 监听的是 ClossEvent 事件 其中的 detail 就是传说中的 相应的属性啦 5 6 4 1 3if aCloseEvent detail Alert OK 如果点击的是 OK 按钮 就 执行 Copyright 2010 知圆行方 Page 24 of 33 5 6 4 2 5 7加载加载 5 7 1下载下载自定义自定义进度条进度条 5 7 1 1继承继承 DownloadProgressBar 类类 一般用于简单的自定义进度条应用一般用于简单的自定义进度条应用 比如自定义加载图片比如自定义加载图片 swf 等等 5 7 1 2实现实现 IPreloaderDisplay 接口的接口的 继承继承 Sprite 的子类的子类 这种方式一般这种方式一般 用于想在页面中绘制进度条的时候使用用于想在页面中绘制进度条的时候使用 因为有更多的方法控制及属性控制因为有更多的方法控制及属性控制 例如例如 backgroundColor 舞台控制等等舞台控制等等 5 8文本框不修改文本框不修改 5 8 1不能修改不能修改 editable false 5 8 2不能选择不能选择 也就是鼠标指针不变也就是鼠标指针不变 selectable false 5 9文本框文本框 正则表达式正则表达式 5 9 1textinput restrict A Z 0 9 Copyright 2010 知圆行方 Page 25 of 33 6 各种杂项各种杂项 6 1转义字符转义字符 6 1 1 a 响铃响铃 BEL 007 6 1 2 b 退格退格 BS 008 6 1 3 f 换页换页 FF 012 6 1 4 n 换行换行 LF 010 6 1 5 r 回车回车 CR 013 6 1 6 t 水平制表水平制表 HT 009 6 1 7 v 垂直制表垂直制表 VT 011 6 1 8 反斜杠反斜杠 092 6 1 9 问号字符问号字符 063 6 1 10 单引号字符单引号字符 039 6 1 11 双引号字符双引号字符 034 6 1 12 0 空字符空字符 NULL 000 6 1 13 ddd 任意字符任意字符 三位八进制三位八进制 6 1 14 xhh 任意字符任意字符 二位十六进制二位十六进制 6 1 15 v 垂直制表和垂直制表和 f 换页符对屏幕没有任何影响 但会影响打印机执换页符对屏幕没有任何影响 但会影响打印机执 行行 6 1 16 n 其实应该叫回车换行 换行只是换一行 不改变光标的横坐标 其实应该叫回车换行 换行只是换一行 不改变光标的横坐标 6 1 17 t 光标向前移动四格或八格 可以在编译器里设置光标向前移动四格或八格 可以在编译器里设置 Copyright 2010 知圆行方 Page 26 of 33 6 1 18 在字符里 即单引号里 使用 在字符串里在字符里 即单引号里 使用 在字符串里 即双引号里即双引号里 不需不需 6 1 19 其实不必要 只要用其实不必要 只要用 就可以了 在就可以了 在 windows VC6 和和 tc2 中中 验验 6 1 20转义字符中只能使用小写字母 每个转义字符只能看作一个字符 转义字符中只能使用小写字母 每个转义字符只能看作一个字符 6 2技巧杂锦技巧杂锦 6 2 1类型转换类型转换 6 2 1 1String 转转 int Number String 6 2 1 2Int 转转 String String int 6 2 2字符串截取字符串截取 6 2 2 1substring 和和 slice 两两者者的的区区别别 6 2 2 1 1如果 endindex 是正值时 那么没有区别 6 2 2 1 2如果 endindex 是负值时 6 2 2 1 3Substring 使用 0 6 2 2 1 4Slice 从结尾向后数 Copyright 2010 知圆行方 Page 27 of 33 6 2 3Enter 提交提交 6 2 3 1TextInput enter sendMessage myInput text 即可即可 里面的里面的 SendMessage 是一个方法是一个方法 6 2 4获取数据类型获取数据类型 6 2 4 1getQualifiedClassName data 6 2 5随机颜色随机颜色 6 2 5 1 setStyle color 0 xffffff Math random 6 2 6隐藏一些内建的右击菜单项隐藏一些内建的右击菜单项 6 2 6 1this contextMenu hideBuiltInItems 6 3跳转跳转 链接打开链接打开 关闭关闭 重载重载 6 3 1navigateToURL 方式方式 直接页面重定向直接页面重定向 一般用于两个工程之间的调用一般用于两个工程之间的调用 6 3 1 1打开打开 navigateToURL new URLRequest url blank 6 3 1 1 1 self 指定当前窗口中的当前帧 6 3 1 1 2 blank 指定一个新窗口 6 3 1 1 3 parent 指定当前帧的父级 6 3 1 1 4 top 指定当前窗口中的顶级帧 6 3 1 2重载重载 6 3 1 2 1navigateToURL new URLRequest javascript location reload self 6 3 1 3关闭关闭 6 3 1 3 1navigateToURL new URLRequest javascript window close self Copyright 2010 知圆行方 Page 28 of 33 6 3 2ViewStack 导航导航 TabNavigator 选项卡选项卡 6 3 2 1注意注意 使用使用 ViewStack 时时 必须填写必须填写 width height 否则无法显否则无法显 示示 6 3 2 2还有在还有在 mx Application 中必须添加中必须添加 xmlns 6 3 2 3整块的切换用整块的切换用 ViewStack 6 3 2 4把要跳转的页新建成把要跳转的页新建成 MXML Component 然后通过然后通过 ViewStack 组件把组件把 这些页包含进来 然后再通过改变这些页包含进来 然后再通过改变 ViewStack 的的 selectedItem 或者或者 selectedChild 来切换这些页 来切换这些页 6 3 3ExternalInterface 调用外部调用外部 API 6 3 3 1ExternalInterface call function window location href 6 3 4State 试图状态定义试图状态定义 一般用于一个局部组件的各种状态修改一般用于一个局部组件的各种状态修改 添加减少窗口等添加减少窗口等 6 3 4 1states State 是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 装修公司分组管理办法
- 舞蹈俱乐部管理办法
- 融资部风险管理办法
- 2025年中枢兴奋药项目发展计划
- 东明石化财务管理办法
- 上海移动客户管理办法
- 2025年高压整体式多路阀项目合作计划书
- 上海夜景照明管理办法
- 中央厨房成本管理办法
- ppap运行管理办法
- 社区社群团购新团长培训案例课件
- 外科学教学课件:食管癌
- 露天矿开采技术课件汇总全套ppt完整版课件最全教学教程整套课件全书电子教案
- 部编人教版九年级上册初中历史 第1课 古代埃及 教案(教学设计)
- 钢结构钢梁计算(PPT33张)
- 幼儿教师——散文诗
- 创伤骨折院前急救ppt课件(PPT 50页)
- DB3302_T 1130-2022建筑垃圾运输管理规范(高清-可复制)
- 会议电视系统工程设计规范附条文说明
- 锚杆、锚索锚固力计算
- 日语话剧展演策划
评论
0/150
提交评论