zoukankan      html  css  js  c++  java
  • SWF文字查询及高亮显示——第三步:实现文字查询高亮显示及解决MovieClip帧切换时关键字无法高亮显示的问题

    SWF关键字高亮显示效果截图:

    上一篇中,已经介绍了基本思想,也转载了关键字的查询显示的关键代码。这些就不在重复啦!源码我会在最后放出的。我这要写得是我实现过程中遇到的问题和解决方法——解决MovieClip帧切换时关键字无法高亮显示的问题。

    问题描述/说明:

    1.加入文字检索和高亮显示功能后,查询关键字在第一页中可以正常高亮显示关键字,但是其他帧(页)没法显示关键字,切换到其他页再返回到第一页,第一页的关键字也没法显示,感觉是其他页面没有被检索和关键字高亮显示的状态没被保存下来。

    在左边页面控制栏中切换MovieClip的帧,也会出现上面的现象。

    2.如果是第一帧了,再点击PreviousPage,关键字显示效果消失。同样如果已经是最后一页了,再点击NextPage同样会出现关键字高亮显示效果丢失。

    问题原因分析:

    根据我跟进代码测试,发现关键字检索确实是对MovieClip的全部帧进行检索的,而且已经获取了所有的位置,只是帧切换后其他MovieClip帧中没能显示出关键字,只有在初次查询时能够在当前帧显示,再次查询时程序代码正常执行了,也获取到检索位置了,还是不能正常显示。经多次测试,发现问题出在TextSnapshot对象上。

    TextSnapshot对象必须定义在函数之外,定义成全局的。(此程序中解决页面切换时还需将其设为Public,以便其他类调用)

    TextSnapShot对象不能被定义多个,应该只存在一个。帧切换过程中TextSnapshot对象似乎被屏蔽了,没法正常显示。

    问题解决方法:

    针对问题1:在帧切换过程里,覆盖掉原来的TextSnapshot对象,即TextSnapshot对象=NULL;并重新进行查询,生成新的该TextSnapshot对象,操作该TextSnapshot对象。实现关键字高亮显示。在帧切换函数中加入:

    this.snapText=null;
    doSearch();  

    针对问题2:判断如果是第一帧了,隐藏PreviousPage;判断如果是最后一帧,隐藏NextPage。要隐藏掉相应的LinkButton,将LinkButton的enabled=false;好像不行的。

    在函数 nextPage()中添加:

      btnPrevious.visible=true;
         if(_currentPage==_pages-1)
         {
          btnNext.visible=false;
         }

    在函数previousPage()中添加:

      btnNext.visible=true;
         if(_currentPage==1)
         {
         btnPrevious.visible=false;
         }

    注:转成SWF的PDF文档必须是文本格式的,不能是影像,否则无法检索和高亮显示

    源代码下载:关键字高亮显示DEMO (只是很初级DEMO源码,其他很多问题可参照我之后的文章一步步改进) 

    下一步需要解决的问题内容:1.截取MovieClip的每帧为图片(仍然是个问题……) 2.解决MovieCip打印问题(注:已被解决,请看下帖)

  • 相关阅读:
    go函数
    Linux 查看磁盘容量、查找大文件、查找大目录
    五分钟理解一致性哈希算法(consistent hashing)
    使用Java实现三个线程交替打印0-74
    Python实现IOC控制反转
    Wannafly挑战赛5 A珂朵莉与宇宙 前缀和+枚举平方数
    Yandex Big Data Essentials Week1 Scaling Distributed File System
    Yandex Big Data Essentials Week1 Unix Command Line Interface Processes managing
    Yandex Big Data Essentials Week1 Unix Command Line Interface File Content exploration
    Yandex Big Data Essentials Week1 Unix Command Line Interface File System exploration
  • 原文地址:https://www.cnblogs.com/wuhenke/p/1603845.html
Copyright © 2011-2022 走看看