设为首页收藏本站同能贴吧 切换语言 繁体中文
开启辅助访问 切换到窄版
扫描二维码关注官方公众号
返回列表
+ 发新帖
查看: 55|回复: 0

[转载] Error reading from list?

[复制链接]
累计送礼:
0 个
累计收礼:
1 个
  • TA的每日心情
    开心
    前天 04:10
  • 签到天数: 209 天

    连续签到: 2 天

    [LV.7]常住居民III

    4452

    主题

    864

    回帖

    2万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    7
    卡币
    22911
    OK点
    16
    推广点
    0
    同能卷
    50
    积分
    28257

    灌水之王

    发表于 7 天前 | 显示全部楼层 |阅读模式
    Hey guys, other achievement systems that were available didn't suit my needs so I started making my own.  I've run into an issue with one of my Window's lists though.

    Long short, I am reading from an external JSON, everything works correctly, and I can pull information using "Khali.achievements.x", x replaced with .name, .id, etc.  The menu opens, I can switch between selections, but I have 3 different games in one package.  They load and are populated fine, but I need to update the achievement title, description, and icon which is above the selection window.

    Here is the code:
                    Code:        
    Window_Achievements_Info.prototype.makeAchievementList = function () {     this._list = [];     for (var i = 1; i < Khali.achievements.length; i++) {         if (Khali.achievements.game === game) {             this.addAchievement(Khali.achievements);         }     }     console.log(this._list); };

    What it does:  Checks for the game title to see if it matches, adds it to a separate list as an object.

    When it works:  Drawing the list of all of the achievement icons (it's setup like the old Xbox 360 achievement menu)

    Where it doesn't work:
                    Code:        
    this.drawText(this._list[currentSelection - 1].game, x + this.iconPadding, y, this.contents.width, 'left');


    If I add console.log(this._list), it will populate the array and show the appropriate information.
    If I add console.log(this._list[0].game) immediately under this line, it will crash with error "Cannot read property 'game' of undefined.

    I can understand it's trying to read a property that isn't defined.  I don't understand how this._list populates the array with
                    Code:        
    0:   game: "Game 1"

    Why is it both defined, and undefined at the same time?  How is that possible?

    [edit]
    It does exclusively work correctly when called from drawItem though.
                    Code:        
    Window_Achievements_Info.prototype.drawItem = function (index) {     var rect = this.itemRect(index);     this.drawFace(this._list[index].icon, 2, rect.x + this.textPadding(), rect.y + this.textPadding(), iconSizeMini, iconSizeMini); };


    I can enter this.drawText(this._list[index].name here and it will populate, but as soon as I try to call that from refresh(), or anywhere else for that matter, it claims it's undefined.

    [edit2]
    Got it.


    本贴来自国际rpgmaker官方论坛作者:Khali处,因国际论坛即将永久关站,为了存档多年珍贵资料,署名转载到本论坛存档,由于官方帖子为英文原帖,需要中文翻译请点击论坛顶部切换语言为中文就可以将帖子翻译成中文浏览,方便大家随时查看,原文地址:https://forums.rpgmakerweb.com/threads/error-reading-from-list.181064/
    天天去同能,天天有童年!
    回复 送礼论坛版权

    使用道具 举报

    文明发言,和谐互动
    文明发言,和谐互动
    高级模式
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    简体中文
    繁體中文
    English(英语)
    日本語(日语)
    Deutsch(德语)
    Русский язык(俄语)
    بالعربية(阿拉伯语)
    Türkçe(土耳其语)
    Português(葡萄牙语)
    ภาษาไทย(泰国语)
    한어(朝鲜语/韩语)
    Français(法语)
    关闭

    幸运抽奖

    社区每日抽奖来袭,快来试试你是欧皇还是非酋~

    立即查看

    聊天机器人
    Loading...

    QQ|Archiver|手机版|小黑屋|同能RPG制作大师 ( 沪ICP备12027754号-3 )

    GMT+8, 2026-7-14 15:26 , Processed in 0.086885 second(s), 55 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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