创建Flash CS3组件(五) 组件的实时预览

简介:

创建Flash CS3组件(五) 组件的实时预览

上一篇 / 下一篇 2008-08-07 23:48:23 / 个人分类:组件

查看( 603 ) / 评论( 0 ) / 评分( 0 / 0 )
创建Flash CS3组件(五) 组件的实时预览
实时预览,可以说是组件的一大特色,它可以一定程度上让用户直观的了解到组件所作的更改,相当的好用.

1.一种简单的实现实时预览的方法
在已经完成的组件上点右键,选择导出swc文件,将组件导出成一个swc文件,然后用WinRAR打开这个swc文件(没错,的确可以打开),你会看到里面有一个catalog.xml和library.swf.其中,catalog.xml是swc的定义文件,里面是所有类的定义.而library.swf就是flash自动生成的实时预览文件,将它改个名字,就可以直接当实时预览来用了.

2.实时预览是如何实现的
实时预览文件其实就是一个包含有组件的swf文件,但是与普通的文件不同的一点是它的文档类是fl.livepreview.LivePreviewParent.当组件发生改变时,flash会与LivePreviewParent通信,然后由LivePreviewParent类来改变组件的相关属性.
根据LivePreviewParent类,我们知道了在实时预览时,如果组件的大小变化了,LivePreviewParent会调用组件的setSize方法来设置大小,如果没有setSize方法就直接设置width和height属性.如果组件的参数变化了,LivePreviewParent会直接为相应属性赋值.
有两点细节要注意:
一是实时预览只对大小和组件参数的改变作反应,其它的所有属性(位置,旋转,样式...)都对实时预览无效
二是实时预览直接对组件参数赋值,而不是调用相关方法.

3.制作简单的实时预览
制作一个简单的swf文件很简单:新建一个fla文件,把文档类设为fl.livepreview.LivePreviewParent,然后把组件拖到场景中,确保组件的所有设置都是默认值,最后发布 -- 搞定!

4.制作更高级的实时预览
在组件中,总有一些东西不应该出现在实时预览中,比如Accordion组件载入的子项.准确的说,所有组件里面包含之外的元件,包括图标,载入的文件等等,都不应该出现在实时预览中,否则可能会导致未知的问题.
所以,在组件中就应当使用checkLivePreview():Boolean方法(继承自UIComponent)来检测是否处于实时预览状态中,然后特殊对待.
对于载入的外界元件,在实时预览中可以不载入,也可以载入一个内置的元件来代替它.
例如
if(checkLivePreview()){
//在这里插入实时预览时的代码
}

5.精简实时预览
如果你觉得实时预览太大,可以将实时预览链接至另一个类,而这个类是一个精简版,仅仅实现了实时预览所需要的方法与属性.这样就实现了组件与实时预览的分开,很方便于修改.
实时预览可以精简所有与组件参数无关的属性和方法,可以将所有监听器去掉(实时预览时是不用事件的),还有可以将样式改成不可更改的,这样就更加简化了代码.
最终简化的实时预览,请见附件中com.cyjb.livePreview.LivePreview_Accordion.as

到目前为止,创建Flash CS3组件系列就告一段落,对于组件方面还有什么问题,可以给我留言,或者发邮件:f8cyjb@126.com

最终完成的组件和源文件
本文转自jiahuafu博客园博客,原文链接http://www.cnblogs.com/jiahuafu/archive/2011/10/20/2219226.html如需转载请自行联系原作者

jiahuafu

相关文章
Three入门 【加载外部模型,使用dat.gui创建动画控制器】
Three入门 【加载外部模型,使用dat.gui创建动画控制器】
99 0
|
6月前
uni-app 图标按钮组件封装(4.2)
uni-app 图标按钮组件封装(4.2)
119 0
|
11月前
|
编解码 前端开发 图形学
Unity 用脚本操作常用UI控件(上)
Unity 用脚本操作常用UI控件(上)
148 0
|
JavaScript C#
Maui 读取外部文件显示到Blazor中
Maui 读取外部文件显示到Blazor中
223 0
|
前端开发 程序员
Qt-QML-ComboBox-自定义,实现状态表示,内容可以动态正价,使用ListModel
Qt-QML-ComboBox-自定义,实现状态表示,内容可以动态正价,使用ListModel
820 0
Qt-QML-ComboBox-自定义,实现状态表示,内容可以动态正价,使用ListModel
|
XML 程序员 C语言
Qt编写控件属性设计器1-加载插件
一、前言 加载插件是整个属性设计器的第一步要打通的功能,插件中的控件都加载不了,后面就别搞别玩下去了没法玩的,要从一个动态库中加载出来控件,肯定需要用到反射机制,以前做.NET开发的时候就觉得反射这个东西相当强大,居然可以读取DLL加载出来控件,现在用Qt,发现Qt也有反射机制,也许这东东可能各大.
1030 0
|
图形学
unity 组件添加与访问
unity访问其他游戏对象的四种方式一、通过属性检查七指定参数进行访问其他游戏对象 using System.Collections;using System.Collections.Generic;using UnityEngine; public class Text : MonoBehavi...
1346 0
|
JavaScript 开发者 索引
高自定义的小程序 UI 组件库 wuss-weapp
如何使用 方法一 [推荐] (通过npm安装依赖并在小程序构建npm模块) 通过使用shell命令或git定位到当前小程序开发目录,然后使用npm或者yarn安装依赖。npm install --production wuss-weapp 或者 当依赖安装完成后即可在微信小程序开发者工具里点击 [工具] => [构建npm],此时若出现弹窗则记得吧 “使用npm模块” 勾上,若无弹窗则待构建完成后在详情里面手动勾上 “使用npm模块”。
2177 0
|
XML C# 数据格式
WPF程序中App.Config文件的读与写
原文:WPF程序中App.Config文件的读与写    WPF程序中的App.Config文件是我们应用程序中经常使用的一种配置文件,System.Configuration.dll文件中提供了大量的读写的配置,所以它是一种高效的程序配置方式,那么今天我就这个部分来做一次系统性的总结。
946 0

相关实验场景

更多