设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 3452|回复: 13
打印 上一主题 下一主题

[有事请教] 哪位大神会写代码啊?gif脚本帮忙优化一下呗!

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1486
在线时间
148 小时
注册时间
2017-8-18
帖子
116
跳转到指定楼层
1
发表于 2017-12-28 02:21:33 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 lqsg123 于 2017-12-29 14:57 编辑

就是这个脚本,我是小白,能不能帮我修改一下代码,让动态图显示在对话框的后面呢?

还有就是全屏和小窗口之间切换的时候,动态图不会跟着放大缩小!

懂脚本的大神帮我修改一下呗!!!






//=============================================================================
// XueYu Plugins - Gif
// AXY_Gif.js
// Version: 1.0
// License: BSD
//=============================================================================
/*:
* @plugindesc v1.00 This plugin show gif, jpg, and many formats img from website or local.
* @author XueYu Plugins
*
* @param Anchor
* @desc The Img Anchor point. topleft/center
* @default center
*
* @param X
* @desc The x position of img. this is a eval param, so you can use Variables.
* @default Graphics.width/2
*
* @param Y
* @desc The y position of img. this is a eval param, so you can use Variables.
* @default Graphics.height/2-90
*
* @param Width
* @desc The img width with % percent or px.
* @default 100%
*
* @param Height
* @desc The img height with % percent or px.
* @default 100%
*
* @param opacity
* @desc The css opacity. 0-1
* @default 1
*
* @param zIndex
* @desc The css zIndex.
* @default 10000
*
* @param delay
* @desc The Img life time. set to 0 to disable. unit is microseconds.
* @default 0
*
* @param path
* @desc The gif file you save.
* @default img/gif/
*
* @help
* Introduction
* This plugin support rmmv show gif, jpg, and many formats img from website or local.
* Easy to use and powerful.
*
* Example:
* show:
* AXY_Gif.show({filename:'1.gif'});
* AXY_Gif.show({filename:'1.jpg'});
* AXY_Gif.show({filename:'url=img/faces/Actor1.png'});
* AXY_Gif.show({filename:'1.gif',id:2});
* AXY_Gif.show({id:3,filename:'1.gif',delay:3000});
* AXY_Gif.show({x:0, y:0, align:'topleft', filename:'url=http://www.yourdomain.com/gif.jpg'});
* AXY_Gif.show({x:0, y:0, align:'topleft', filename:'url=http://www.yourdomain.com/gif.gif'});
* all args with default:
* AXY_Gif.show({x:'Graphics.width/2', y:'Graphics.height/2-90', align:'center', filename:'1.gif',id:1,delay:0,width:'100%',height:'100%',opacity:1});
* remove with id:
* AXY_Gif.remove(1);
* AXY_Gif.remove(2);
* remove all:
* AXY_Gif.removeall();
*/

// Imported
var Imported = Imported || {};
Imported.AXY_Gif = true;

// Parameter Variables
var AXY = AXY || {};
AXY.Gif = AXY.Gif || {};

AXY.Gif.Parameters = PluginManager.parameters('AXY_Gif');
AXY.Gif.Param = AXY.Gif.Param || {};

//
AXY.Gif.Param.Anchor = String(AXY.Gif.Parameters['Anchor']);
AXY.Gif.Param.X = String(AXY.Gif.Parameters['X']);
AXY.Gif.Param.Y = String(AXY.Gif.Parameters['Y']);
AXY.Gif.Param.Width = String(AXY.Gif.Parameters['Width']);
AXY.Gif.Param.Height = String(AXY.Gif.Parameters['Height']);
AXY.Gif.Param.opacity = parseFloat(AXY.Gif.Parameters['opacity']);
AXY.Gif.Param.zIndex = parseInt(AXY.Gif.Parameters['zIndex']);
AXY.Gif.Param.delay = parseInt(AXY.Gif.Parameters['delay']);
AXY.Gif.Param.path = String(AXY.Gif.Parameters['path']);

//main
//gif
AXY_Gif = {
        show: function () {
                //console.log(arguments[3]);
                var AXYGifArgs         =         arguments[0] ? arguments[0] : {};
                var filename         =         AXYGifArgs['filename'] ? AXYGifArgs['filename'] : "";
                var delay                 =         AXYGifArgs['delay'] ? AXYGifArgs['delay'] : AXY.Gif.Param.delay;
                var id                        =         AXYGifArgs['id'] ? AXYGifArgs['id'] : 1;
                var x                        =         AXYGifArgs['x'] != undefined ? AXYGifArgs['x'] : eval(AXY.Gif.Param.X);
                var y                        =         AXYGifArgs['y'] != undefined ? AXYGifArgs['y'] : eval(AXY.Gif.Param.Y);
                var width                =         AXYGifArgs['width'] ? AXYGifArgs['width'] : AXY.Gif.Param.Width;
                var height                =         AXYGifArgs['height'] ? AXYGifArgs['height'] : AXY.Gif.Param.Height;
                var opacity                =         AXYGifArgs['opacity'] ? AXYGifArgs['opacity'] : AXY.Gif.Param.opacity;
                var align                =         AXYGifArgs['align'] ? AXYGifArgs['align'] : AXY.Gif.Param.Anchor;
               
                if(filename.indexOf('url=') != -1){
                        filename = filename.replace('url=', '');
                }
                else{
                        filename = AXY.Gif.Param.path + filename;
                }
               
                var AXYGifEntity;
                var AXYGifTemplate = '<div id="AXYGif'+id+'" class="AXYGif" style="visibility:hidden;position:fixed;left:0px;top:0px;z-index:'+
                AXY.Gif.Param.zIndex+';"><img src="'+
                filename+'" style="width:'+
                width+';height:'+
                height+';opacity:'+
                opacity+';" /></div>';

                AXYGifEntity = $('body').append(AXYGifTemplate);
               
                if(align == 'center'){
                        $("#AXYGif"+id+" img")[0].onload = function(){
                                //alert('width = ' + this.naturalWidth + ' , height =' + this.naturalHeight);
                                //console.log($("#AXYGif"+id+""));
                                //console.log($("#AXYGif"+id+" img")[0].baseURI);
                                //console.log($("#AXYGif"+id+" img")[0].currentSrc);
                                //console.log($("#AXYGif"+id+" img")[0].clientHeight);
                                //console.log($("#AXYGif"+id+" img")[0].naturalWidth);
                                //console.log($("#AXYGif"+id+" img")[0].width);
                                //console.log($("#AXYGif"+id+" img")[0].height);
                               
                                if(width.indexOf("px") != -1){
                                        var widthpx = width;
                                        var widthint = parseFloat(width);
                                }
                                else{
                                        var widthint = $("#AXYGif"+id+" img")[0].naturalWidth*parseFloat(width)/100;
                                        var widthpx = widthint+'px';
                                }
                                if(height.indexOf("px") != -1){
                                        var heightpx = height;
                                        var heightint = parseFloat(height);
                                }
                                else{
                                        var heightint = $("#AXYGif"+id+" img")[0].naturalHeight*parseFloat(height)/100;
                                        var heightpx = heightint+'px';
                                }

                                var imgx = widthint/2;
                                var imgy = heightint/2;
                                var divx = x-imgx;//*parseFloat(width)/100;
                                var divy = y-imgy;//*parseFloat(height)/100;
                               
                                //console.log('img center point: imgx='+imgx+', imgy='+imgy);
                                //console.log('screens left top: divx='+divx+', divy='+divy);
                                //console.log('x='+parseFloat(width)/100+', y='+parseFloat(height)/100+', naturalWidth='+ $("#AXYGif"+id+" img")[0].naturalWidth);
                                //console.log('x='+x+', y='+y);
                                //console.log('widthpx='+widthpx+', heightpx='+heightpx);
                                //console.log('Graphics.width='+Graphics.width+', Graphics.height='+Graphics.height);
                                //console.log(window);
                                //var imgCenter =
                               
                                $("#AXYGif"+id+" img").css({'width':widthpx,'height':heightpx});
                                $("#AXYGif"+id).css({left:divx+'px', top:divy+'px', visibility:'visible'});
                        }
                }
                else{
                        $("#AXYGif"+id).css({left:x, top:y, visibility:'visible'});
                }
               
                if(delay>=1){
                        setTimeout(function()
                        {
                                $('#AXYGif'+id).remove();
                        }, delay);
                }

                //console.log(css);
                //console.log($gameParty);
                //console.log($gameSystem);
                //console.log(TextManager.currencyUnit);

                //$('#AXYGif'+id+' img').stop().show().animate({"width": "100%","height": "100%"}, "normal");
        },
        remove: function () {
                var id                        =         arguments[0] ? arguments[0] : 1;
                $('#AXYGif'+id).stop().animate({"width": "0","height": "0"}, "normal", function() {
                        $(this).remove();
                });
        },
        removeall: function () {
                $('.AXYGif').stop().animate({"width": "0","height": "0"}, "normal", function() {
                        $(this).remove();
                });
        }
};

Image 3.png (719.39 KB, 下载次数: 13)

Image 3.png

Image 4.png (445.15 KB, 下载次数: 19)

Image 4.png

Lv4.逐梦者

梦石
0
星屑
19691
在线时间
2355 小时
注册时间
2015-7-4
帖子
940
2
发表于 2017-12-28 10:15:32 | 只看该作者
这个插件不是写得很直白了吗?显示时长、位置、移除图片等都是用插件指令控制的。
AXY_Gif.show({x:'Graphics.width/2', y:'Graphics.height/2-90', align:'center', filename:'1.gif',id:1,delay:0,width:'100%',height:'100%',opacity:1});
你用这个插件指令不能控制位置跟消失时间吗?
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1486
在线时间
148 小时
注册时间
2017-8-18
帖子
116
3
 楼主| 发表于 2017-12-28 15:53:06 | 只看该作者
Fan723 发表于 2017-12-28 10:15
这个插件不是写得很直白了吗?显示时长、位置、移除图片等都是用插件指令控制的。
AXY_Gif.show({x:'Graphi ...

我是小白,完全不懂代码!关键是这两个问题!

让动态图显示在对话框的后面呢?

还有就是全屏和小窗口之间切换的时候,动态图不会跟着放大缩小!

点评

你能将你的插件指令发出来看看么,还要一张显示出来后的效果图。  发表于 2017-12-28 21:30
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1486
在线时间
148 小时
注册时间
2017-8-18
帖子
116
4
 楼主| 发表于 2017-12-29 14:47:02 | 只看该作者
本帖最后由 lqsg123 于 2017-12-29 14:53 编辑
lqsg123 发表于 2017-12-28 15:53
我是小白,完全不懂代码!关键是这两个问题!

让动态图显示在对话框的后面呢?


AXY_Gif.show({filename:'s1.gif',id:2,width:'121',height:'121',x:950,y:444});
这个是代码



能让对话框显示在动态图的后面吗?
大神你还在不在啊?

Image 4.png (445.15 KB, 下载次数: 22)

Image 4.png

点评

你试试用这个代码,然后再根据效果调整位置跟比例。 AXY_Gif.show({x:'800', y:'600', align:'center', filename:'s1.gif', id:2, width:'30%', height:'30%', opacity:1});  发表于 2017-12-29 15:20
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1486
在线时间
148 小时
注册时间
2017-8-18
帖子
116
5
 楼主| 发表于 2017-12-29 16:47:48 | 只看该作者
lqsg123 发表于 2017-12-29 14:47
AXY_Gif.show({filename:'s1.gif',id:2,width:'121',height:'121',x:950,y:444});
这个是代码

谢谢大神啊!不过

这个脚本不能改成让动态图显示在对话框的后面吗?就像普通图片显示在对话框的后面!

点评

你修改一下这个插件参数:zIndex 默认是10000太高了,你试一下 0 或者 -1 等。  发表于 2017-12-29 17:42
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
36856
在线时间
10901 小时
注册时间
2009-3-15
帖子
4842
6
发表于 2017-12-29 17:16:23 | 只看该作者
本帖最后由 soulsaga 于 2017-12-29 17:19 编辑

* @param zIndex
* @desc The css zIndex.
* @default 10000

插件管理里面的參数可设定吧?把这个改成很 小的数值应该就会在对话框后面了...我想..大概..

点评

感觉插件用的是img标签载入的gif。但MV是默认用canvas绘制界面的。直接搞zIndex,估计窗口出来后那个gif图片又会被遮盖了>_<!  发表于 2017-12-29 17:26
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
14696
在线时间
718 小时
注册时间
2011-7-16
帖子
1428

开拓者

7
发表于 2017-12-31 01:07:45 | 只看该作者
是的,用的img,所以你只能缩小图片到不要遮盖对话框的大小,如果用canvas那只能用序列帧做动画,不支持gif的
RMMV网络插件,开源免费,内含服务器端,无需强制登录,云数据,弹幕,云存档,排名,兑换码,版本检测,可自由上架下架删除。q群399090587
免打包运行MV游戏,云游戏,安卓App雷神游戏厅,在线玩游戏,上传下载游戏
开源游戏:重装机兵之重装归来【RMMV制作】全球首款按照美剧分季分集的方式发布的游戏
体素画 -- MV画3D像素图的画板
RMMV显示3D模型和场景的插件
RMMV显示spine骨骼动画的插件
RMMV秘密通道插件
突破敌群数量上限8个的插件
在rmmv中显示gif动态图片的插件
一款可以在mv游戏界面的任意位置显示任意文字的插件
RMMV Toast 插件 带物品得失提示,可以设置开启关闭 兼容yep itemcore
制作一个改名卡道具插件、调整标题页面菜单的插件、在标题页面之前显示大段文字的插件、标题页面显示版本号的插件
物品得失自动提示自动上色自动换行插件
我的Q群 663889472
另外,我的插件、范例、游戏都在这里
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1486
在线时间
148 小时
注册时间
2017-8-18
帖子
116
8
 楼主| 发表于 2018-1-3 21:06:16 | 只看该作者
soulsaga 发表于 2017-12-29 17:16
* @param zIndex
* @desc The css zIndex.
* @default 10000

没用啊,这个是干嘛的呀

点评

插件管理不是可以改參数么..改一下zIndex试试..不过我也不肯定有没用..  发表于 2018-1-3 21:20
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1232
在线时间
1017 小时
注册时间
2011-4-30
帖子
1516
9
发表于 2018-1-6 01:20:59 | 只看该作者
看起来不可能...
或许应该研究下sprite如何用gif...
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-1-27 07:01

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表