THE NVL Maker

 找回密码
 注册
搜索
查看: 24327|回复: 4

[系统修改] 历史界面与确认窗口的淡入

[复制链接]

11

主题

33

帖子

0

精华

游戏开发者

积分
33
发表于 2019-4-7 19:37:17 | 显示全部楼层 |阅读模式
D大您好!!
nvl历史界面和确认窗口的显示都是瞬入的,想让它变得柔和一些,和别的界面一样可以花200毫秒淡入
顺着macro_ui摸去了manwindow再摸回myhistorylayer,看到历史界面显示好像是跟叫dispinit的函数有关,想使用kag.tagHandlers.move之类的指令却意识到找不到历史记录和确认窗口所在的层……难道是建立了一个临时层显示的?
请问该如何做才能实现历史界面和确认窗口的显示淡入与返回淡出效果呢?

以及顺便想再问一下
之前在纠结这个淡入问题的时候摸进GraphicLayer.tjs里看了看,有许多方便的函数,但是调用失败(找不到成员beingmove或beingaction),这是需要事先载入什么东西吗?
回复

使用道具 举报

16

主题

989

帖子

0

精华

管理员

Rank: 9Rank: 9Rank: 9

积分
1010
发表于 2019-5-24 10:38:18 | 显示全部楼层
历史纪录和确认窗口都是TJS单独的新建层,并不是kag层,所以可能很多指令都用不上。
淡入的话似乎一般的做法是直接改这两个层的透明度,然后设置个timer从0-255这种。
(由于这块做起来太麻烦所以一直懒得搞。)
回复

使用道具 举报

11

主题

33

帖子

0

精华

游戏开发者

积分
33
 楼主| 发表于 2019-9-27 17:14:43 | 显示全部楼层
VariableD 发表于 2019-5-24 10:38
历史纪录和确认窗口都是TJS单独的新建层,并不是kag层,所以可能很多指令都用不上。
淡入的话似乎一般的做 ...

谢谢D大!尝试了下按照水螅大大的教程做timer,但是显示有语法错误,请问到底是哪里出了问题?
这里贴一下出错部分的代码
  1. fuction onTimer()//timer执行内容
  2. {
  3.         if (opacity<255) opacity=opacity+5;
  4.         if (opacity==255)
  5.         {
  6.         timer.enabled = false;
  7.         }
  8. }
复制代码



前面修改过的dispInit函数的代码是这个
  1.         function dispInit()
  2.         {
  3.         kag.hideMessageLayerByUser();

  4.         // 全部再描画と初期設定
  5.                 makeButtons(); // ボタンを作成

  6.                 lastLine = currentLine;
  7.                 endAction();
  8.                 lastAction = currentAction;

  9.                 antialiased = window.chDefaultAntialiased;
  10.                 clearBack();

  11.                 if(everypage)
  12.                 {
  13.                         if(dataPages>0)
  14.                         {
  15.                                 canScroll        = true;
  16.                                 dispStart        = dataPages - 1;
  17.                         }
  18.                         else
  19.                         {
  20.                                 canScroll        = false;
  21.                                 dispStart        = 0;
  22.                         }
  23.                         drawPage();
  24.                 }
  25.                 else
  26.                 {
  27.                         if(verticalView)
  28.                                 dispLines = (width - marginR - marginL) \ lineHeight;
  29.                         else
  30.                                 dispLines = (height - marginT - marginB - controlHeight) \ lineHeight;

  31.                         if(dataLines <= dispLines)
  32.                         {
  33.                                 // 表示可能範囲内に収まる
  34.                                 canScroll = false;
  35.                                 dispStart = 0;
  36.                                 var i;
  37.                                 for(i= 0; i < dataLines; i++)
  38.                                         drawLine(i);
  39.                         }
  40.                         else
  41.                         {
  42.                                 // 表示可能範囲内に収まらない
  43.                                 canScroll = true;
  44.                                 dispStart = dataLines - dispLines;
  45.                                 var i;
  46.                                 for(i = 0; i < dispLines; i++)
  47.                                         drawLine(i);
  48.                         }
  49.                 }
  50.         scrollSlider.min = 0;
  51.         scrollSlider.max = dispStart;
  52.         scrollSlider.enabled = canScroll;
  53.         
  54.                 updateButtonState();
  55.                 opacity = 0;
  56.                 visible = true;

  57.         timer = new Timer(onTimer, "");
  58.                 timer.enabled = true;
  59.         timer.interval = 100;//每100毫秒执行一次onTimer

  60.                 setMode();
  61.                 focus();
  62.                 lastWheelTick = 0;

  63.                 cursor = window.cursorDefault;
  64.         }
复制代码
回复

使用道具 举报

16

主题

989

帖子

0

精华

管理员

Rank: 9Rank: 9Rank: 9

积分
1010
发表于 2019-10-2 15:10:34 | 显示全部楼层
记得如果是在class里面用timer变量,是不是需要先在class最前面声明?比如这种:
class RapidFireButton extends ButtonLayer
{
        var timer;//<=这一行需要放在函数外面,calss里面

        function RapidFireButton(window, parent)
        {
                super.ButtonLayer(window, parent);
                focusable = false;
                timer = new Timer( this , "repeat" );
                timer.interval = 100;
        }


...
}
回复

使用道具 举报

11

主题

33

帖子

0

精华

游戏开发者

积分
33
 楼主| 发表于 2020-2-10 18:50:16 | 显示全部楼层
这边忘记说了,关于为什么会出错,其实我在不久后就找到了原因



…………是因为我手癌把其中一个function拼错了!!!!竟然是仅此而已!!!!手癌太要命了,真得时时刻刻检查!!!!
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|nvlmaker

GMT+8, 2024-4-20 19:28 , Processed in 0.010313 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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