Flex图片上传与预览功能实现教程

版权申诉
0 下载量 92 浏览量 更新于2024-10-13 收藏 225KB ZIP 举报
资源摘要信息:"flex图片上传带预览功能_flexsc.zip" 1. Flex技术概述 Flex是Adobe公司推出的一个开源框架,用于开发跨平台的富互联网应用(Rich Internet Applications,RIA)。它主要使用MXML(一种基于XML的标记语言)和ActionScript(一种面向对象的编程语言)进行开发。Flex应用通常编译成Flash SWF文件,能够在Flash Player或者Adobe AIR环境中运行。Flex因其高度的可定制性、丰富的组件库以及能够创建绚丽用户界面而受到开发者的欢迎。 2. 图片上传功能实现 在Flex应用中实现图片上传功能通常涉及到几个主要的步骤。首先,需要在MXML中添加一个文件上传组件,如mx:FileReference或spark:FileReference。其次,需要为该组件添加事件监听器,以便在用户选择文件时触发相应的逻辑处理。在用户选择文件后,可以通过编程方式上传文件到服务器端指定的接口。 3. 图片预览功能实现 图片预览功能是指在用户上传图片之前,能够在客户端看到所选图片的缩略图。在Flex中,通常会使用ByteArray和Bitmap类来处理和显示图片。当用户选择文件后,可以读取文件内容到ByteArray中,然后使用Bitmap类将ByteArray转换为图像对象,并通过Image组件展示出来。这个过程可以实时响应用户的文件选择操作,提供即时的图像预览效果。 4. 文件列表展示 文件列表展示是指在用户上传多张图片后,能够在界面上展示所有已上传图片的缩略图。这通常需要一个容器组件(如HBox或VBox)来布局多个图片缩略图,并为每个图片缩略图创建一个Image组件。当新的图片被上传后,动态地在容器中添加新的Image组件,并为其绑定相应的事件处理函数。 5. 文件上传和预览的交互逻辑 在实现文件上传和预览功能时,交互逻辑是关键。这包括了对事件的处理(如文件选择事件、上传进度事件等),以及状态更新(如上传成功/失败提示、进度条显示等)。合理的交互设计可以提升用户体验,使得整个上传过程直观且易用。 6. SWF文件的编译和部署 完成Flex应用的开发后,需要使用Flex编译器将MXML和ActionScript代码编译成SWF文件。开发者可以在Flex Builder(或Flash Builder)IDE中设置编译选项,如安全沙箱权限、应用程序标题等,并生成最终的SWF文件。之后,SWF文件需要部署到支持Flash Player的Web服务器上,或者打包成AIR应用进行安装。 7. 代码示例和源码参考 本压缩包中的flex图片上传带预览功能_flexsc.zip,提供了完整的源码示例。开发者可以下载并解压该文件,查看MXML文件和ActionScript文件中具体的实现细节。源码中应该包含了文件上传组件的使用、图片预览的实现逻辑、文件列表的动态展示、以及所有必要的交互逻辑代码。 8. Flex框架的更新和维护 随着技术的发展,Adobe公司也在不断更新和改进Flex框架。开发者需要关注Flex的最新动态,以确保应用能够利用最新的框架特性,并且兼容未来的升级。社区和官方论坛是获取最新信息和资源的良好渠道。 通过以上知识点的介绍,开发者可以对Flex图片上传带预览功能_flexsc.zip的实现有一个全面的了解。这些知识点不仅涵盖从基础到进阶的功能实现,还包括了相关技术的背景知识、开发工具和资源的使用建议,以及对代码质量保证的考虑。掌握这些知识,将有助于开发者更有效地利用Flex技术开发出高质量的RIA应用。

以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 上传