网上流行的图片幻灯片效果播放插件pixviewer.swf相信很多人都在用,但因为有很多问题无法解决让人很苦恼。
比如最多只支持6个图片,这个我可以忍;比如只支持jpg格式的图片,我也可以忍;比如图片大小完全适应显示框,图片拉伸变形,说是实在的这个我本可以忍,但被扭曲形象的领导没法忍。他拍案而起,怒火中烧,所以我们干了好几个月的辛苦,毁在了一个播放插件上。
如果你也有同样的痛苦经历,那你幸福了,因为我忍不过领导这关,所以我千辛万苦的找到源文件,并把图片变形问题改进了,使大于显示框大小的图片锁定纵横比缩放。
源文件下载地址 http://files.cnblogs.com/jesse/focus.rar (未修改)
找到 focus_ok.fla文件
打开 Action Layer: 帧1 修改如下方法
function preloader1(target)
{
var _l1 = target;
mc = _l1.pic;
var _l2 = int(mc.getBytesLoaded() / mc.getBytesTotal() * 100);
if (_l2 >= 100)
{
delete _l1["onEnterFrame"];
// 锁定图片纵横比,居中显示图片
var scale = 0.0;
if(_l1._width > borderwidth-2)
{
scale = _l1._width / (borderwidth-2);
_l1._width = borderwidth-2;
_l1._height = _l1._height / scale;
}
if(_l1._height > borderheight-2)
{
scale = _l1._height / (borderheight-2);
_l1._width = _l1._width / scale;
_l1._height = borderheight-2;
}
_l1._x = (borderwdith - _l1._width) / 2 + 1;
_l1._y = (-1 * _l1._height / 2) - textheight/2 + 1;
//_l1._width = borderwidth;
//_l1._height = borderheight;
} // end if
} // End of the function
打开 Action Layer: 帧2 修改如下方法
function preloader(target, flagSwfPre) {
var _l1 = target;
var _l3 = _root;
mc = _l1.pic;
var _l2 = int(mc.getBytesLoaded()/mc.getBytesTotal()*100);
_l3.loader.gotoAndStop(_l2);
if (_l2>=100) {
delete _l1["onEnterFrame"];
setProperty("_root.buttonbanner.num"+(_l1.getDepth()+1), _alpha, "100");
if (_l1 == _level0.image0) {
mc._alpha = 100;
_l3.buttonbanner.num1.gotoAndStop(3);
_l3.current_pic = 0;
_l3.timer.gotoAndPlay(2);
}
// end if
// 锁定图片纵横比,居中显示图片
var scale = 0.0;
if (_l1._width>borderwidth-2) {
scale = _l1._width/(borderwidth-2);
_l1._width = borderwidth-2;
_l1._height = _l1._height/scale;
}
if (_l1._height>borderheight-2) {
scale = _l1._height/(borderheight-2);
_l1._width = _l1._width/scale;
_l1._height = borderheight-2;
}
_l1._x = (borderwdith-_l1._width)/2+1;
_l1._y = (-1*_l1._height/2)-textheight/2+1;
//_l1._width = borderwidth;
//_l1._height = borderheight;
if (flagSwfPre == 1) {
mc.stop();
}
// end if
}
// end if
}// End of the function
注意: 减2 或加1 都是为考虑边框的问题
还有很多问题因为我对action script 不懂,所以没有修改(可以继续忍下去),希望忍无可忍的兄弟将你修改好的无须再忍的代码分享一下!