加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

flash 播放图片改进

发布时间:2020-12-15 18:21:07 所属栏目:百科 来源:网络整理
导读:网上流行的图片幻灯片效果播放插件pixviewer.swf相信很多人都在用,但因为有很多问题无法解决让人很苦恼。 比如最多只支持6个图片,这个我可以忍;比如只支持jpg格式的图片,我也可以忍;比如图片大小完全适应显示框,图片拉伸变形,说是实在的这个我本可以

网上流行的图片幻灯片效果播放插件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 不懂,所以没有修改(可以继续忍下去),希望忍无可忍的兄弟将你修改好的无须再忍的代码分享一下!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读