Flex特效全解析:行为机制与动画制作指南

需积分: 9 4 下载量 49 浏览量 更新于2024-09-15 收藏 518KB PDF 举报
Flex特效大全整理是一篇关于Adobe Flex框架下实现动态交互和动画设计的文章。Flex,作为一种基于Adobe ActionScript的富客户端开发技术,其强大的行为(Behavior)和动画系统是其显著特点。本文旨在深入探讨如何在Flex应用程序中利用这些特性来增强用户体验。 首先,Flex的行为机制是通过触发器(Trigger)和效果(Effect)组合实现的。触发器是动画或事件响应的核心,当用户或程序触发特定事件(如鼠标点击、组件添加或隐藏)时,相关触发器会被激活。这些触发器可以是用户交互触发,也可以是程序逻辑触发,并且可以与多个效果关联,使得单一事件触发多种不同的视觉或听觉反馈。 触发器的使用非常灵活,可以通过MXML标记中的属性设置,也可以在样式定义(mx:Style)中调用,或者在ActionScript代码中通过setStyle()和getStyle()方法操控。触发器的名称遵循特定规则,例如mouseDownEffect代表鼠标按下时的触发器。Flex内置了多种触发器,包括addedEffect(组件添加)、creationCompleteEffect(组件创建完成)、focusIn/OutEffect(焦点切换)等,以及与鼠标交互相关的事件,如lmouseDownEffect(鼠标按下)、mouseUpEffect(鼠标释放)等。 动画效果在Flex中则是通过工厂类(Factory)和实例类(Instance)协作产生的。工厂类负责处理事件并控制动画流程,其名称通常与效果名称一致,比如Zo就是一种具体的动画类型。创建动画效果时,开发者可以定义动画的开始、结束状态,以及动画的执行路径,使得界面元素能够平滑地过渡,增加交互的动态感。 总结来说,本文涵盖了Flex特效的基础知识,包括行为触发器的使用和动画效果的创建方法,这对于提升Flex应用程序的交互性和吸引力至关重要。掌握这些技术,开发者能够为用户提供更加生动、直观的界面体验,提高应用的可用性和用户满意度。

以hive的角度检查语法: with cur_dim_comb as (SELECT DISTINCT t.dim_comb ,t.var_sub_class ,t.acc_value FROM gerp.cux_cst_data_alloc_his t WHERE t.top_var_type = '10' AND t.job_ver_id in (SELECT ver.job_ver_id AS p_job_ver_id FROM gerp.cux_cst_dist_jobs_all job INNER JOIN gerp.cux_cst_dist_jobs_vers_all ver ON job.job_id = ver.job_id )) select tp.bd_code --事业部编码 ,tp.bd_name --事业部名称 ,hp.ou_code --OU名称 ,hp.ou_name --OU编码 ,op.main_class_desc --差异大类 ,op.acc_value --科目代码 ,op.acc_desc --科目名称 ,op.dim_comb --区分维度 ,op.begin_amount --期初余额 ,op.accrual_amount --本期发生 ,op.balance_diff_alloc_amount --期末差异结存 ,op.var_sub_class ,op.main_class_value ,op.org_id ,op.period_name ,op.job_ver_id from (select up.* ,q1.* from (SELECT DISTINCT maincl.* ,t.* FROM t inner join (SELECT fv.flex_value ,fv.description FROM fv inner join fs on fv.flex_value_set_id = fs.flex_value_set_id AND fs.flex_value_set_name = 'CUX_CST_VARIANCE_TYPE' AND fv.enabled_flag = 'Y' AND fv.hierarchy_level = '2' AND fv.flex_value LIKE '10%' ) maincl on t.var_main_class = maincl.flex_value inner join cur_dim_comb on cur_dim_comb.var_sub_class = t.var_sub_class and cur_dim_comb.acc_value = t.acc_value WHERE 1 = 1 AND t.top_var_type = '10' AND t.job_ver_id in (SELECT ver.job_ver_id AS p_job_ver_id FROM gerp.cux_cst_dist_jobs_all job INNER JOIN gerp.cux_cst_dist_jobs_vers_all ver ON job.job_id = ver.job_id) ORDER BY maincl.description ,t.acc_value ,cur_dim_comb.dim_comb ) up inner join (SELECT t1.* ,SUM(t1.begin_amount) begin_amount ,SUM(t1.accrual_amount) accrual_amount ,SUM(t1.balance_diff_alloc_amount) balance_diff_alloc_amount FROM gerp.cux_cst_data_alloc_his t1 LEFT JOIN gerp.cux_cst_data_alloc_his t ON t1.top_var_type = '10' AND t1.var_sub_class = t.var_sub_class --p_var_sub_class AND t1.org_id = t.org_id --p_org_id AND t1.period_name = t.period_name --p_period_name AND t1.job_ver_id = t.job_ver_id --p_job_ver_id AND t1.acc_value = t.acc_value --p_acc_value WHERE t1.dim_comb in (select distinct dim_comb from cur_dim_comb) group by t1.org_id,t1.period_name,t1.job_ver_id,t1.var_sub_class,t1.acc_value ) q1 on q1.org_id = up.org_id --p_org_id AND q1.period_name = up.period_name --p_period_name AND q1.job_ver_id = up.job_ver_id --p_job_ver_id AND q1.var_sub_class = up.var_sub_class --p_var_sub_class AND q1.acc_value = up.acc_value --p_acc_value ) op

2023-05-26 上传