精华内容
下载资源
问答
  • EasyFlash V4.0 ENV 功能设计与实现

    千次阅读 2020-04-23 20:07:31
    文档链接:EasyFlash V4.0 ENV 功能设计与实现 EasyFlash V4.0 ENV 功能设计与实现 1、为什么要开发 V4.0 EasyFlash 是我个人开发的第二款开源软件,自 2015 年初正式开源出来,至今(2019.02)已经经历了 4 年多...

    声明:本文档来源于EasyFlash的仓库,原作者armink。因github上图片显示缓慢,我转载到了CSDN。
    文档链接:EasyFlash V4.0 ENV 功能设计与实现

    EasyFlash V4.0 ENV 功能设计与实现

    1、为什么要开发 V4.0

    EasyFlash 是我个人开发的第二款开源软件,自 2015 年初正式开源出来,至今(2019.02)已经经历了 4 年多时间。期间有很多其他行业的嵌入式开发者与我取得联系,得知他们已经将 EasyFlash 应用于自己的产品上,我心里也倍感欣慰,可见 EasyFlash 的成熟性已经得到了很多行业的认可。

    1.1 功能简洁,但性能差强人意

    大家普遍的感觉是 EasyFlash 功能简洁,可以很容易的应用于产品上。但随着技术的演进,大家对于 KV 需求的多样化,对于 MCU 资源(主要是 RAM)、Flash 存储资源、Flash 寿命等性能指标越来越高,旧版本的 EasyFlash 在这些方面还是有提升的空间。比如:

    1.2 旧版本的痛点

    • 每个存储在 Flash 上的 ENV 都会在 RAM 中缓存一份,这样做虽然能够简化实现,但确实会占用很多 RAM 资源;
    • ENV 的值类型只支持字符串,如果想要保存其他类型的值(比如:数组、结构体)就比较麻烦了,虽然我后来为此又专门开发了 struct2json 开源软件,但还是不够便捷;
    • 每次保存 ENV 都需要重新擦写整个 Flash 扇区,那么位于扇区尾部未使用的区域始终无法得到利用,降低了 Flash 的使用效率,也就降低了 Flash 的使用寿命

    1.3 从 0 开始的 NG 版本

    也就是从 2017 年初开始,我便开始准备 EasyFlash 的性能优化工作,结合大家的需求,不断的整理、迭代设计文档,也与一些社区爱好者做过非常深入的交流。最终确定下来,如果单纯的在原有基础上进行完善,那么会有太多的功能实现受到限制,所以干脆重新开发全新一代 ENV 功能组件,这个版本被命名为 NG(Next Generation) 版本。

    NG 版本差不多在 2017 年底就已经设计完毕,但一直没时间去开发。后来在亲人的支持下,终于利用 2019 年猪年春节的假期,在岳父母家完成了 V4.0 NG 版本的开发(在此感谢岳父母、爱人的支持)。

    2、V4.0 的特色有哪些

    • 更小的资源占用,内存占用 几乎为 0
    • ENV 的值类型支持 任意类型 、任意长度,相当于直接 memcpy 变量至 flash ;
    • ENV 操作效率比以前的模式高,充分利用剩余空闲区域,擦除次数及操作时间显著降低;
    • 原生支持 磨损平衡、掉电保护功能 (V4.0 之前需要占用额外的 Flash 扇区);
    • ENV 支持 增量升级 ,固件升级后 ENV 也支持升级;
    • 支持大数据存储模式,长度无限制,数据可在多个 Flash 扇区上顺序存储。像脚本程序、音频等占用 Flash 超过 1 个扇区的资源也都可以存入 ENV;
    • 支持 数据加密 ,提升存储的安全性,物联网时代的必备功能;
    • 支持 数据压缩 ,减低 Flash 占用;

    3、如何实现

    3.1 算法

    假定 ENV 分区里有 4 个扇区,以下将按照操作 ENV 的方式,逐一举例讲解不同操作下,对应的 Flash 状态及数据变化。

    3.1.1 ENV 操作过程1(常规模式)

    3.1.1.1 首次使用

    在这里插入图片描述

    首次使用时,EasyFlash 会检查各个扇区的 header,如果不符合规定的格式将执行全部格式化操作,格式化后,每个扇区的顶部将被存入 header ,负责记录当前扇区的状态、魔数等信息。格式化的初始化状态为空状态。

    3.1.1.2 添加 KV1、KV2、KV3

    在这里插入图片描述

    在执行添加操作前,会先检索合适地址来存放即将添加的新 KV,这里检索策略主要是:

    • 确定当前选择的扇区剩余容量充足
    • 优选选择正在使用状态的扇区,最后使用空状态扇区
    • 检查新 KV 是否有同名的 KV 存在,存在还需要额外执行删除旧值的动作

    通过上图可以看出, KV1、KV2 及 KV3 已经被放入 sector1 ,添加后,扇区状态也被修改为正在使用

    3.1.1.3 修改 KV2 KV3,删除 KV1,添加 KV4


    修改 ENV 时,旧的 ENV 将被删除,扇区的状态也将被修改为脏状态,然后再执行新增 ENV 的操作。

    • 执行修改 KV2 时,已经存在的 KV2 旧值被修改为已删除,sector1 状态被修改为脏状态,此后将 KV2 新值放入 sector1,发现 sector1 已经没有空间了,sector1 的状态还会被修改为已满状态;

    • 执行修改 KV3 时,已经存在的 KV3 旧值被修改为已删除,sector1 状态已经为脏状态,无需再做修改。经过查找发现 KV3 的新值只能放到 sector2,放到 sector2 后将其修改为正在使用状态;

    • 执行删除 KV1 时,找到 KV1 的位置,将其修改为已删除状态,sector1 状态已经为脏状态,无需再做修改;

    • 执行添加 KV4 时,经过查找在 sector2 找到合适的存储位置,将其添加后,sector2 状态已经为正在使用状态,无需再做修改。

    3.1.1.4 添加 KV5 KV6,触发 GC

    • 执行添加 KV5 操作,由于 KV5 体积较大,sector2 放不下,所以只能放在一个新扇区 sector3 上,添加后,修改 sector3 状态为正在使用
    • 执行添加 KV6 操作,KV6 也只能放在 sector3 下,将其放入 sector 3 后,发现 sector3 空间已满,所以将其修改已满状态。执行完成后,发现整个 ENV 的 4 个扇区只有 1 个状态为空的扇区了,这个扇区如果再继续使用就没法再执行 GC 操作了,所以此时触发了 GC 请求;
    • 执行 GC 请求,EasyFlash 会找到所有被标记为已满并且为脏状态的扇区,并将其内部的 ENV 搬运至其他位置。就这样 sector1 上的 KV2 被搬运至了 sector2,腾空 sector1 后,又对其执行了格式化操作,这样整个 ENV 分区里又多了一个空状态的扇区。

    3.1.2 ENV 操作过程2(开启大数据存储模式)

    马上就来……

    3.2 数据结构

    结合上面的算法不难发现,其实所有的操作都围绕着 扇区状态ENV状态 ,这些状态将被存放在扇区及 ENV 头部,并且保证在不擦除扇区数据的前提下进行单向修改,在程序代码实现上称这些状态及其他一些数据信息为 元数据

    除了常规功能外,还有一项重要指标是 EasyFlash 非常看重的,那就是掉电保护能力,相当于在任何操作出现掉电异常,整个 EasyFlash 的容错能力是否过硬,是否可以进行掉电恢复。像 准备写入、准备删除这些中间状态就是为了掉电保护功能而设计。

    出于后期扩展性的考虑这里也预留了一些保留属性,还有一些提前规划好的状态及属性后面将用过多扇区存储、加密、压缩功能的实现。

    设计完成后,整个 ENV 的数据结构如下图,该图最终也可转换为对应的结构体。

    展开全文
  • 原教程 ... 现在我们来给博客增加文章检索功能,即根据关键字模糊查询文章标题,且字母不区分大小写。 首先,我们修改 header.ejs , 前添加一行代码: style.css 添加一行样式: .search{bord

    原教程 https://github.com/nswbmw/N-blog/wiki/_pages的第十一章,由于版本等的原因,在原教程基础上稍加改动即可实现。

           现在我们来给博客增加文章检索功能,即根据关键字模糊查询文章标题,且字母不区分大小写。
    首先,我们修改 header.ejs ,在 </nav> 前添加一行代码:

    <span><form action="/search" method="GET"><input type="text" name="keyword" placeholder="SEARCH" class="search" /></form></span>
    在 style.css 中添加一行样式:

    .search{border:0;width:6em;text-align:center;font-size:1em;margin:0.5em 0;}
    打开 post.js ,在最后添加如下代码:
    //返回通过标题关键字查询的所有文章信息
    Post.search = function(keyword, callback) {
    	mongodb.open(function (err, db) {
    			if (err) {
    				return callback(err);
    			}
    			db.collection('posts', function (err, collection) {
    				if (err) {
    					mongodb.close();
    					return callback(err);
    				}
    				var pattern = new RegExp("^.*" + keyword + ".*$", "i");
    				collection.find({
    						"title": pattern
    					}, {
    						"name": 1,
    						"time": 1,
    						"title": 1
    					}).sort({
    						time: -1
    					}).toArray(function (err, docs) {
    							mongodb.close();
    							if (err) {
    								return callback(err);
    							}
    							callback(null, docs);
    						});
    			});
    	});
    };
          注意:我们通过 pattern 定义了包含关键字 keyword 的正则表达式,若 keyword 字符串的开头或结尾包含特殊字符(比如说 * )则需转义。
    修改 index.js ,在 app.get('/u/:name') 前添加如下代码:
            app.get('/search', function (req, res) {
    		Post.search(req.query.keyword, function (err, posts) {
    			if (err) {
    				req.flash('error', err); 
    				return res.redirect('/');
    			}
    			res.render('search', {
    				title: "SEARCH:" + req.query.keyword,
    				posts: posts,
    				user: req.session.user,
    				success: req.flash('success').toString(),
    				error: req.flash('error').toString()
    			});
    		});
    	});
    在 views 文件夹下新建 search.ejs ,添加如下代码:
    <%- include header %>
    <ul class="archive">
    <% var lastYear = 0 %>
    <% posts.forEach(function (post, index) { %>
      <% if(lastYear != post.time.year) { %>
        <li><h3><%= post.time.year %></h3></li>
      <% lastYear = post.time.year } %>
        <li><time><%= post.time.day %></time></li>
        <li><a href="/u/<%= post.name %>/<%= post.time.day %>/<%= post.title %>"><%= post.title %></a></li>
    <% }) %>
    </ul>
    <%- include footer %>
           注意:目前为止,你会发现 tag.ejs 和 search.ejs 代码完全一样,因为我们都用相同的布局。这也突出了模版的优点之一 —— 可以重复利用,但我们这里并没有把这两个文件用一个代替,因为每一个文件的名字代表了不同的意义。

    效果:输入查询关键字,


    查询结果:



    展开全文
  • Flash CS4新增功能

    2009-03-11 17:49:00
    对多个文件应用属性更改,创建元件后将其保存到指定文件夹,等等。 △ 支持 H.264 的 Adobe Media Encoder 呈现最高品质的视频,并提供了比以前更多的控制。使用其他 Adobe 视频产品(如 Premiere® Pro 和 ...

    的舞台空间。
     
    △ 新的项目面板
      利用新的项目面板,可以更轻松地处理多文件项目。对多个文件应用属性更改,在创建元件后将其保存到指定文件夹,等等。
     
    △ 支持 H.264 的 Adobe Media Encoder
      呈现最高品质的视频,并提供了比以前更多的控制。使用其他 Adobe 视频产品(如 Premiere® Pro 和 After Effects®)中提供的相同工具编码为 Adobe Flash Player 可识别的任何格式。
     
    △ Adobe ConnectNow 集成
      通过使用 Adobe® ConnectNow™,可以与其他用户在线共享您的屏幕和召开会议。通过选择“文件”>“共享我的屏幕”,可以直接从应用程序界面打开 ConnectNow。
     
    △ 在 Soundbooth 中编辑
      Adobe® Soundbooth™ 的用户现在可以在 Soundbooth 中编辑从 Flash 中直接导入的声音。Adobe ASND 声音文件格式支持对声音文件进行非破坏性编辑。
     
    △ 增强的元数据支持
      利用新的 XMP 面板,用户可以方便而快速地对其 SWF 内容分配元数据标签。支持将元数据添加到 Adobe® Bridge 识别的 SWF 文件中和其他可识别 XMP 元数据的 Creative Suite® 应用程序中。改善组织方式并支持对 SWF 文件进行快速查找和检索。
     
    △ 与 Flex 开发人员协作
      仅导入在 Flex™ Builder™ 中开发的只包含代码的 ActionScript™ 3.0 SWC 组件。
     
    △ XFL 导入
      从 InDesign® 和 After Effects 中导入内容并保持文件完整性。XFL 是一种新的文件格式,设计人员可以利用此格式轻松传送内容以便在 Flash 中进一步开发。
     
    △ 对 Adobe Pixel Bender™ 的支持
      在运行时轻松应用自定义滤镜和效果以便实时表现创意。使用 Adobe® Pixel Bender™ 创建独特的滤镜、混合和填充(这些内容现在可通过 Adobe Pixel Bender 移植到多个应用程序)以便为 Adobe Flash Player 运行时环境按需生成引人注目的视觉效果。只需编写滤镜一次,即可使用 ActionScript 3.0 多次共享或应用该滤镜。
     
    △ JPEG 解块
      此发布设置选项可减少高度压缩的 JPEG 文件中出现的常见失真。
     
    △ 经过改进的“库”面板
      新的经过改进的面板提供了搜索功能、排序功能以及一次性设置多个库项目的属性的功能,可让您更轻松地使用各种资源。
     
    △ 新的 Creative Suite 用户界面
      直观的面板停靠和自动弹出行为可帮助简化您与整个 Adobe Creative Suite 内的工具的交互过程,从而提高效率。
     
    △ 新的字体菜单
      Flash 中的字体菜单现在包含每种字体以及这些字体所带的每种样式的预览。
     
    △ 硬件加速
      发布的 SWF 文件现在可以更好地利用现有硬件获得更好的播放性能。
     
    △ 社区帮助
      社区帮助是 adobe.com 上的一个集成环境,可让您访问由 Adobe 和行业专家修改过的社区生成内容。用户提供的意见和评分可帮助您找到所需答案。通过在社区帮助中进行搜索,可以在网站上找到关于 Adobe 产品和技术的最佳内容。

    展开全文
  • $(function(){ - 每列下面添加检索框 $('#dataTable tfoot th').each( function () { var title = $('#dataTable thead th').eq( $(this).index() ).text(); $(this).htm...
     $(function(){
    		
    
     - 每列下面添加检索框
    
                $('#dataTable tfoot th').each( function () {
                    var title = $('#dataTable thead th').eq( $(this).index() ).text();
                    $(this).html( '<input type="text" placeholder="Search '+title+'" />' );
                } );
                var table = $('#dataTable').DataTable({
                    lengthChange: true,
                    serverSide: true,
                    // autoWidth : false, //是否自适应宽度
                    // scrollCollapse : false, //是否开启DataTables的高度自适应,当数据条数不够分页数据条数的时候,插件高度是否随数据条数而改变
                    scrollX: true,
                    ajax: {
                        url: '',
                        data: function (d) {
                            //运营
                            d.channel 				= $('#searchChannel').val();
                            d.type  				= $('#type').val();
                        }
                    },
                    columns: columns,
                    dom:  '<lfB<t>ip>',
                    // "stateSave": true,
                    buttons: [
                        {
                            extend: 'colvis',
                            text: '显示/隐藏',
                            className:'btn btn-success',
                        },
                        {
                            extend: 'excel',
                            text: '导出xlsx',
                            className:'btn btn-success',
                            exportOptions: {
                                columns: ':visible',
                            }
                        },
                    ],
    
                    language : {
                        'paginate': {
                            'first':      '第一页',
                            'last':       '最后一页',
                            'next':       '下一页',
                            'previous':   '上一页'
                        },
                        'info': '第 _PAGE_ 页 / 总 _PAGES_ 页',
                        'infoEmpty': '没有数据',
                        'infoFiltered': '(过滤总条数 _MAX_ 条)'
                    },
                });
                
    
     - 此处代码是为了解决导出只能导出本页面数据问题.添加页码数,刷新页面,使用button导出当前页面数据.说白了就是让你想要的数据展示在一个页面上面,然后才能导出来.因为button execl 只能导出当前页.
    
                $('select[name="dataTable_length"]').append('' +
                    '<option value="1000">1000</option>' +
                    '<option value="2000">2000</option>'+
                    '<option value="5000">5000</option>'
                );
                
    
     - 因页面太宽,列太多,使用列显示隐藏时,表头和数据宽度错乱,特此添加了刷新功能.
    
                $(document).on('click', '.dt-button-background', function () {
                    dataTable.draw();
                });
                table.on('draw.dt', function () {
                    loadShow(0);
                    $('#searchProvider').select2();
                });
    
     - 添加检索框enter 事件请求
    
                // Apply the search
                table.columns().eq( 0 ).each( function ( colIdx ) {
                    $( 'input', table.column( colIdx ).footer() ).on( 'keyup change', function () {
                        table
                            .column( colIdx )
                            .search( this.value )
                            .draw();
                    } );
                } );
     - 添加检索框在头部
                $('#dataTable tfoot tr').appendTo('#dataTable thead');
    
    
    
                //3-电销给商机添加备注
                $(document).on('click','.dx_remarks',function(){
                    $.ajaxSetup({
                        headers: {
                            'X-CSRF-Token': $('meta[name="_token"]').attr('content')
                        }
                    });
                    var id  = $(this).attr('data-id');
                    var status = 'show';
                    $.ajax({
                        url: "",
                        data: {'id':id,'status':status},
                        type: "post",
                        dataType:"json",
                        success: function (data) {
                            layer.prompt({
                                formType: 2,
                                value: data.data,
                                title: '请输入备注信息',
                                area: ['800px', '350px'] //自定义文本域宽高
                            }, function(value, index, elem){
                                if(value != ''){
                                    $.ajax({
                                        url:"",
                                        data:{'id':id,'content':value},
                                        type:"post",
                                        dataType:"json",
                                        success:function(data){
                                            if(data.data != ''){
                                                $(this).val(data.data);
                                            }
                                            layer.msg(data.msg);
                                        }
                                    });
                                }
                                layer.close(index);
                            });
                        },
                        error: function (msg) {
                            layer.msg('可能后台出错了');
                        },
                    });
                });
                //1-修改线索radio状态
                $('body').on('click', '.type_status_select', function () {
                    $(this).attr('checked',true);
                    $(this).siblings().attr('checked',false);
                });
            });
    
    
     - [ 需要加载的js] 
    
        <script src="https://cdn.datatables.net/buttons/1.5.0/js/dataTables.buttons.min.js"></script>
        <script src="https://cdn.datatables.net/buttons/1.5.0/js/buttons.colVis.min.js"></script>
        <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jszip/2.5.0/jszip.js"></script>
        <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.32/vfs_fonts.js"></script>
        <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.32/pdfmake.js"></script>
        <script type="text/javascript" src="https://cdn.datatables.net/buttons/1.4.2/js/buttons.flash.js"></script>
        <script type="text/javascript" src="https://cdn.datatables.net/buttons/1.4.2/js/buttons.html5.js"></script>
        <script type="text/javascript" src="https://cdn.datatables.net/buttons/1.4.2/js/buttons.print.js"></script>
    
    
     - [html ] 
    
    <div class="box">
            <div class="box-body table-responsive">
                <table id="dataTable" class="table table-bordered table-striped">
                    <thead>
                    <tr>
                        <th>序号</th>
                            <th>渠道</th>
                    </tr>
                    </thead>
                    <tbody>
                    </tbody>
                    <tfoot>
                    <tr>
                        <th>序号</th>
                            <th>渠道</th>
                    </tr>
                    </tfoot>
                </table>
            </div>
        </div>
    
    展开全文
  • Print2Flash与FlashPaper功能对比详情

    千次阅读 2013-10-31 10:00:33
    Print2Flash和FlashPaper二者信息发布或者网页制作方面都表现出优秀的性能和良好的易用性,但是,二者的功能上却各有不同。本文详细对比了Print2Flash和FlashPaper在功能上的区别,详情如下: 功能 FlashPaper ...
  • Flash用了N年了,也不知从什么时候开始感觉元件库的管理面板不人性,检索功能差,找个对象如同玩躲猫猫. 今天不小心按到了Shift,发现一个惊人的变化,原来可以使用Shift+英文字母来查找对象,真是OUT了,还有这么个功能...
  • 信息检索的应用 & 如何检索

    千次阅读 2020-05-05 18:26:34
    信息检索在日常生活的广泛应用 1. 防止上当受骗 2.健康 3. 特价旅游信息 4.免费读书 5. 名校课程、开放教育资源OERs 搜索引擎SE的分类 1. 按内容的组织方式 2. 按收录资源的范围 3.按信息采集的方式 4....
  • 截取网页Flash

    千次阅读 2006-06-04 20:12:00
    就个人经验,截取网页Flash可有如下几种方法:1.使用FlashGet打开FlashGet(网际快车),打开工具→站点资源探索或直接按F7键,网址栏添上网址,按回车,然后下面的列表栏选中swf类型的文件,右键单击下载。...
  • 文献检索题库

    千次阅读 2011-11-22 10:59:00
    1问题:[万方数据资源(网站地址:http://www.wanfangdata.com.cn)进入学术期刊,使用“期刊检索功能,“按地区”找到“河北”的“半导体技术”,打开该期刊的2008年第三期,选出篇名为“微通道板清洗设备...
  • FLASH相关知识扫盲

    2018-01-24 11:27:41
    在flash的动态存储(单链表方式),遇到flash坏块问题,从中引申出许多不熟的知识点,此梳理标记。其大致过程,经过和同事及朋友的沟通,nand flash的坏块处理方法如下:flash寄存器标志位检测、采用文件系统...
  • Flash Player 8 的安全性更改

    千次阅读 2013-07-27 19:11:46
    要求 ...Macromedia 已更改了 Flash ...默认情况下, 从用户本地文件系统而不是通过 HTTP 运行的 Flash 应用程序 Flash Player 8 的权限比 Flash Player 7 具有更多限制。该模型适用于所用版本的 Flash
  • 它有一个特殊的属性:默认情况下,处理请求期间存储闪存的值将处理紧随其后的请求期间可用。 处理完第二个请求后,这些值会自动从存储删除。 这是一个开源项目,根据条款获得,由巴西软件开发和咨询初创...
  • ASP.NET实现Flash与.NET的紧密集成2007-06-19 13:59 一、 Flash特性决定其可以集成 Macromedia公司的Flash如今被广泛应用于互联网上以实现增强Web网站的内容描述。Macromedia把Flash作为Web应用程序开发的接口
  • 网络检索技术3--文献检索

    万次阅读 2008-03-15 14:10:00
    标准检索表达式:杂志名(数据库名)+password+username 3.检索表达式的变异(pw, pwd等衍生词) 4.冗余信息的去除(-NEED) 5.密码的区域性问题 (site:EDU,KR,TW) 6.文件类型限制 7.INTITTLE/link等限制的妙用 8.著名...
  • ASP.NET实现Flash与.NET的紧密集成

    千次阅读 2006-01-23 01:42:00
    Macromedia最近发行的Flash(Flash 6和Flash MX)版本已经明确表示,Macromedia正在十分认真地考虑把Flash作为Web应用程序开发的接口选择。对于一个接口来说,Flash可能是一伟大的选择;然而,这个选择不是用它来替换...
  • Flash builder4.5如何代码格式化

    千次阅读 2012-03-20 14:47:01
     flex开发过程,as代码我们可以自己良好的维护代码的格式,可要编写大量的mxml,它的格式就不好控制了,比较优雅的代码方式是组件每个属性都各占一行,相同的属性可以放在一行内。可是很多时候,我们的代码...
  • 优化 Flash 性能

    千次阅读 2013-10-30 09:31:27
    原文:... 本文,您将找到使用 Flash Professional 创建的应用程序的性能优化战略。 优化过程包括编辑 FLA 项目文件,确保所发布的应用程序已实现的(或实际的)帧速率足以能流畅地回放动画。
  • 实现 嵌入式手持移动终端,应用程序需要存储和检索大量的用户信息,这些信息应用程序退出时应该被记录保存下来,同时这些信息要能被多个应用程序并发使用,比如电话本的数据要能够被电话,短消息,名片等多...
  • 最近一朋友电脑了病毒,经过360安全卫士和360杀毒以及金山卫士的合力绞杀下,病毒被全部歼灭,病毒是灭了,但是发现一个非常罕见的问题出现了,凡是带有flash的网页,一旦打开之后就狂闪,比如进入qzone和一些带...
  • NOr flash onenand

    千次阅读 2010-05-04 18:01:00
    NAND Flash和NOR Flash是目前市场上两种主要的非易失闪存芯片。...而NAND Flash以容量大、写速度快、芯片面积小、单元密度高、擦除速度快、成本低等特点,非易失性类存储设备显现出强劲的市场竞争力。 
  • Flash游戏开发技术分析(下)

    千次阅读 2009-10-13 10:12:00
    Flash游戏开发技术分析(下)7、开源Flash开发工具(1) MTASCMTASC全称“Motion-Twin ActionScript 2 Compiler”,是第一个开源的 ActionScript 编译器。可使用它直接生成SWF字节码,无需任何Flash工具。(2) ASDTASDT...
  • Print2Flash文档也包含了类似于Web页面的超链接。...转换后的Print2Flash文档的超链接由一个悬停转换文档...该方法从源文件中检索超链接并输出的Flash文件创建相应的超链接。目前,该方法支持以下文件类型:
  • 网易闪电邮(FlashMail)是一款网易自主研发的电子邮件客户端软件,支持所有网易邮箱帐户和POP3邮箱帐户的本地收发和管理邮件功能。 网易闪电邮(FlashMail)的最大特点是: (1)超高速:使用网易自主研发的专有...
  • Flash cc 初试

    2018-11-06 15:18:05
    Flash cc 初试
  • 这样得好处,就是非常适合物联网终端设备使用,使得日志可以更加容易的存储非文件系统,并具有历史日志检索功能。 GitHub:https://github.com/armink/EasyLogger/blob/master/docs/zh/port/flash.md 硬件...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,620
精华内容 5,448
关键字:

在flash中做检索功能