修改flashpaper的默认模板defaultview2.swf


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后才能。没搜到解决办法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值