关闭

修改flashpaper的默认模板defaultview2.swf

1155人阅读 评论(0) 收藏 举报


1、查找功能。
flashpaper默认模板DefaultViewer2.swf反编译、修改后,重新生成swf,查找功能失效。
需要在mainview.as中function findNext()里var _loc2 = this.getFindText();后面添一句
_loc2 = _loc2.substring(0, _loc2.length - 1);否则,传过来的值不正确。原因不明。

 

2、超长查找内容,找不到后提示功能不正常。原版就是这样。
需要将mainview.as中function findNext()里if (!found){...}修改为:
if (!found)
{
    var dot = "";
    var _loc1 = this.getLanguageObject().NOT_FOUND;
    var _loc3 = _loc1.indexOf("%");
    var _loc4 = "";
    if (_loc3 != -1)
    {
  for(;;)
  {
   _loc4 = _loc1.substring(0, _loc3) + _loc2 + dot + _loc1.substring(_loc3 + 1, _loc1.length);
   if (this.showMessage(_loc4, this.m_mainMC.toolbar_mc.controls_mc.find_mc)){break;}
   if (_loc2.length == 0){break;}
   this.showMessage("", null);
   _loc2 = _loc2.substring(0, _loc2.length - 1);
   dot = "...";
  };
    } // end if
}

 

3、页面后退按钮功能不正常,在部分页面向前退页时会出现跳页。原版就是这样。
将DocumentView.as中function getScrolledPage(middle)函数里的
_loc3 = Math.round(_loc3 / _loc2.m_mainView.getCurrentScaleFraction());
改为:
_loc3 = Math.round((_loc3+2) / _loc2.m_mainView.getCurrentScaleFraction());
这个函数没读懂,+2 是猜测的。暂时能用,不知道有没有其他不良影响。

 

4、增加全屏阅读功能。
将左上角adobe标志的按钮、图片删除,添加一个按钮fullscreen1
动作代码:
on (release)
{
 Object(this).fullscreen1._visible=false;
 Object(this).fullscreen2._visible=true;
 Stage["displayState"] = "fullScreen";
}
再添加一个按钮fullscreen2,和1重叠
动作代码:
on (release)
{
 Object(this).fullscreen2._visible=false;
 Object(this).fullscreen1._visible=true;
 Stage["displayState"] = "normal";
}

在主stage第三个帧的语句后添加:
var myListener:Object = new Object();
myListener.onFullScreen = function(bFull:Boolean)
{
 if(bFull == false)
 {
  _root.toolbar_mc.fullscreen2._visible=false;
  _root.toolbar_mc.fullscreen1._visible=true;
 }
}
Stage.addListener(myListener);

最后,再使用他的网页中写入swf的地方加上参数 allowFullScreen="true" 即可。
此参数可能和 wmode="transparent" 有冲突,使用时注意


5、屏蔽打印等功能。
在主stage第三个帧的语句后添加:
gMainView.showUIElement("Print", false);
gMainView.showUIElement("Pop", false);
//gMainView.showUIElement("Tool", false);
//gMainView.showUIElement("Overflow", false);

 

 

在网页中使用flashpaper后,发现了几个新问题:

1、因ie6中swf不能自动激活,使用swfobject、writeflash等外部js文件写入swf可以自动激活,但是swf的全屏功能无效。网上没找到解决办法,只好暂时不管swf的自动激活了。

2、很多种浏览器不能让swf活动焦点。上网一查,原来使用 wmode="transparent" 后,有的浏览器中swf不能获得焦点。

还有,wmode="transparent" 使大部分浏览器中的swf不能输入中文(ime输入法),输入后这接在网页上显示出来了。早有的bug,adobe一直没改。
 
3、即便不用 wmode="transparent", chorme、opera等浏览器也不能用focus使swf自动获得焦点,非要点击swf后才能。没搜到解决办法

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1484次
    • 积分:23
    • 等级:
    • 排名:千里之外
    • 原创:1篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章存档