课件制作工具——wizBuilder CS-程序员宅基地

技术平台:flex,.net

作品介绍:一个多媒体课程制作工具,通过内置的页面模板、方案模板帮助快速设计课程,让用户只需专注课程知识的填写就能制作出图像,文字,音频等媒体同步的高质量课程。发布的课程上传到学习平台就能够通过Internet进行课程的学习。课程文件是松散的媒体文件,播放时才动态加载,便于课程知识的安全性。

开发感悟:.net部分只负责IO接口的操作,其余绝大部分功能,从界面到后台逻辑都由flex平台技术来完成。我能够成为该产品的设计师、主开发觉得非常的幸运,做开发的都知道这样的机会并不多,从产品的设计到产品的瓜熟落地,就像看着自己孩子的出世、成长。开发的这段时间,我也学会了舍得去抛弃,抛弃不好的设计,抛弃不好的代码,哪怕它已成型。之前,设计时没打算做Undo/Redo的操作,但后来看到主流的制作工具都支持Undo/Redo,所以下决心用命令模式重构了整个命令系统,最后也实现了,我设计出来的命令模式也许是标准的变形吧,不过合适就行。还有许多技术难点的攻关(自定义布局,多选,生成缩略图,页面加载播放…),整个研发过程中获益良多,很具体,很深刻,得到的锻炼也是巨大的。现在,产品基本成型了,我还是继续地重构,增、删、修改一些功能,像照料着自己的孩子,让它成长。

效果图

起始页

编辑界面1

编辑界面2

编辑界面3

时间轴

课程预览

课程发布

发布后的课件

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/iteye_3224/article/details/81802835

智能推荐

2021CCPC广州 H. Three Integers-程序员宅基地

文章浏览阅读2k次。题目链接You are given three non-negative integers aaa, bbb, and ccc. Find three positive integers xxx, yyy, and zzz that satisfy x mod y=ax\bmod y=axmody=a, y mod z=by\bmod z=bymodz=b, and z mod x=cz\bmod x=czmodx=c.InputThe first line contains an integer t_h. three integers

docker-compose up -d使用遇到问题no configuration file provided: not found-程序员宅基地

文章浏览阅读660次,点赞9次,收藏7次。docker-compose使用问题_no configuration file provided: not found

增加product项目_product增加-程序员宅基地

文章浏览阅读1.2k次。增加一个新的项目chunge7inch,类似smdkv210,需要做如下步骤:1. cp -rf device/samsung/smdkv210 device/samsung/chunge7inch 将device/samsung/chunge7inch目录下含有“smdkv210”字样的全部改成"chunge7inch"2. cp -rf vendor/samsung/smdk_product增加

生成带参数的二维码-程序员宅基地

文章浏览阅读907次。带参数的二维码分为两种:1、临时二维码,是有过期时间的,最长可以设置为在二维码生成后的30天(即2592000秒)后过期,但能够生成较多数量。临时二维码主要用于帐号绑定等不要求二维码永久保存的业务场景2、永久二维码,是无过期时间的,但数量较少(目前为最多10万个)。永久二维码主要用于适用于帐号绑定、用户来源统计等场景。临时二维码请求说明http请求方式: POSTURL: https://api..._生成带参数的二维码

内部排序之归并排序(MergingSort)_mergingsorttransform merge sorted 1block-程序员宅基地

文章浏览阅读1.1k次。一、基本思想 将两个已经排序好的有序列表合并成一个新的有序表。根据分治策略,我们会发现从上往下,就是将一个乱序表一直递归划分,划分到最后就只剩一个元素,显然有序。二、示意图 从底下往上看,整个算法就像分治策略中的最大子数组问题。 最大子数组问题三、算法整个算法分为两个部分,一个是对两个有序子表的合并;一个是对乱序表的划分。 合并: 这部分很简单,就是逐个读取连个子表的最小值。 划_mergingsorttransform merge sorted 1block

bootstrap-table 合并单元格_$.table.init 合并-程序员宅基地

文章浏览阅读8.1k次。function initTable() { //先销毁表格 $('#cusTable').bootstrapTable('destroy'); //初始化表格,动态从服务器加载数据 $("#cusTable").bootstrapTable({ method: "post", //使用get请求到服务..._$.table.init 合并

随便推点

学习好并用好大模型-程序员宅基地

文章浏览阅读842次,点赞20次,收藏12次。大模型是个好东西,学好并用好益处多多~

[UEFI开发] Linux Ubuntu EDK2环境搭建_ubuntu edk2 uefi-程序员宅基地

文章浏览阅读2.9k次,点赞4次,收藏18次。[UEFI开发]配置EDK2开发环境 (Ubuntu X86_64)_ubuntu edk2 uefi

HTML基础(一)-程序员宅基地

文章浏览阅读977次。更新中~~文章目录常用浏览器以及内核常用浏览器以及内核

JS:Uint8Array 数组类型、arraybuffer对象类型与十六进制字符串互转-程序员宅基地

文章浏览阅读2.3w次,点赞7次,收藏36次。最近,在做区块链浏览器,调用合约与链上进行数据通信的时候,需要将对象转化成十六进制字符串,看看下 javascript 关于 ArrayBuffer 类型的api文档,新的如下:arraybuffer类型转16进制字符串function buf2hex(buffer) { return Array.prototype.map.call(new Uint8Array(buffer), x => ('00' + x.toString(16)).slice(-2)).j._uint8array

write.wait_for_active_shards参数和 refresh参数实现elasticsearch同步写入_wait_for_active_shards=0-程序员宅基地

文章浏览阅读2.9w次,点赞3次,收藏3次。  elasticsearch一般称为近实时的大数据处理引擎,为什么是近实时呢?原因是当我们提交索引数据时,实际上只是写到了Buffer里面,并不是立即可搜索的,最多需要等1秒才可搜索(index.refresh_interval由这个参数控制,可以通过动态API自定义设置,或在建索引时在settings里面设置),还有一点,当存在副本时,只保证主分片写入成功写入请求就会返回,此时搜索请求如果分配..._wait_for_active_shards=0

ZZULIOJ1077: 空心菱形_输入一个n,输出一个空心菱形-程序员宅基地

文章浏览阅读664次。【代码】ZZULIOJ1077: 空心菱形。_输入一个n,输出一个空心菱形

推荐文章

热门文章

相关标签