附加组件,a.k.a。插件是一组组件,可增强现有软件应用程序或为软件应用程序添加新功能。
我正在尝试使用 Lua 为 vanilla wow 创建一个简单的插件,第一个任务是初始化一些 UI 并调用一个函数进行初始配置。 MyAddonName.xml 我正在尝试使用 Lua 为 vanilla wow 创建一个简单的插件,第一个任务是初始化一些 UI 并调用一个函数进行初始配置。 MyAddonName.xml <Ui xmlns="http://www.blizzard.com/wow/ui/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.blizzard.com/wow/ui/ https://raw.githubusercontent.com/Gethe/wow-ui-source/live/Interface/AddOns/Blizzard_SharedXML/UI.xsd"> <Frame name="MyAddonName" parent="UIParent"> <Size x="384" y="512" /> <Anchors> <Anchor point="CENTER" relativePoint="CENTER" relativeTo="UIParent" /> </Anchors> <Layers> <Layer level="BACKGROUND"> <Texture name="$parent_Portrait" parentKey="portrait" file="Interface\Icons\INV_Misc_EngGizmos_30"> <Size x="60" y="60" /> <Anchors> <Anchor point="TOPLEFT"> <Offset x="7" y="-6" /> </Anchor> </Anchors> </Texture> </Layer> </Layers> <Scripts> <OnLoad function="MyAddonName_OnLoad" /> </Scripts> </Frame> </Ui> MyAddonName.lua function Print(msg, r, g, b) DEFAULT_CHAT_FRAME:AddMessage("|c0033ffccMyAddonName|r "..msg.."", r, g, b) end function MyAddonName_OnLoad(self) Print("loaded"..tostring(self), 0, 1, 0) // <- self exists self.items = {} end function MyAddonName_TestFunct() Print(MyAddonName.items) or Print(self.items) // <- not exists, attempt to index field 'items' (a nil value) end MyAddonName_TestFunct稍后会调用,出于测试目的,我刚刚从调用了它 /run MyAddonName_TestFunct() /run MyAddonName_TestFunct() 我假设在从xml部分加载插件后,将调用带有self的MyAddonName_OnLoad,其中self是代表插件实例的表,稍后在某些事件中我可以调用MyAddonName_TestFunct,并将一些初始值存储在可访问的表中通过self。 我检查了其他插件(例如BetterCharacterStats)并且有类似的代码,例如 BetterCharacterStats.lua function BCS:OnLoad() // `BCS:` means that self passed implicitly 我还注意到表BSC显式创建,但因此我在检查期间有self - 这对我来说不需要。 ---- 这是一个更完整的示例我测试过(使用更多代码)-我正在尝试遵循一些教程,现在结果有点不同 这是打印的结果 输出图像 任何人都可以建议我错在哪里吗? 您在 OnLoad 事件期间遇到的 self 为零的问题是《魔兽世界》UI 脚本中的一个常见问题,尤其是对于自定义框架。这种情况通常会发生,因为当 OnLoad 脚本被触发时,对 self 的引用不会按照您期望的方式自动传递,特别是当它是自定义框架或按钮时。 原因如下: 在 WoW 中,当您将 self 事件与 OnLoad 或 frame 结合使用时,button 参数通常由系统自动传入。但是,如果在 OnLoad 内处理 XML 事件,则当事件触发时,frame 可能尚未完全初始化,或者 XML 设置可能无法正确链接到 Lua 函数。 根本原因 OnLoad 事件通常在框架加载时触发,但在某些情况下(取决于上下文), self 可能不会按预期引用框架。 直接在Lua中引用框架 如果你不想改变XML,你可以修改Lua函数来直接获取框架的引用,即使self是nil。您可以通过在 frame 函数中按名称引用 MyAddonName_OnLoad 来实现此目的。 修复: local frame = self or MyAddonName -- Fallback to MyAddonName if self is nil
C# WinForms - 无法在 TextBox 中键入某些键 (CorelDraw AddOn)
我没有成功解决 C# 中 TextBox 输入的奇怪行为。 环境 该项目是使用 Control AddOn 创建的,此类项目在 CorelDraw 菜单中创建一个按钮...
我过早地从我的帐户中删除了 Heroku Postgres Hobby Basic 附加组件,该附加组件包含我正在使用的数据库(我通过仪表板将其删除)。有什么办法可以恢复这个数据库吗?我试过了...
MacOS 上的 Sublime Text 3:编辑包键绑定/包中的自定义键绑定
问题 我在 macOS 上使用 Sublime Text 4,并且安装了一个添加了一些有用功能的包。 但是,我想修改此包的默认键绑定以更好地适合我的
我有一个表格编辑器插件。它是一个独立的项目,连接到标准的谷歌云项目(而不是默认项目)。 我想“发布 -> 作为附加组件测试...”...
我正在尝试为 Google 表格创建脚本。 我创建了一个脚本并尝试“作为附加组件进行测试”,但当我“测试”它时它似乎没有做任何事情。 我从
如何在发布插件之前使用多个活跃用户测试 Google Apps 脚本?
通过 Google Apps 脚本发布 Google 文档插件的一般要求之一包括以下行: 该脚本已经过多个活跃用户的测试。 一个人怎么走
我正在开发 Google 表格插件。我已经在 https://script.google.com/ 中使用 Code.gs、index.html、appsscript.json 实现了一些基本逻辑。我通过单击“部署”->“新建”来部署项目
我在复制 pdf 报价的报告模板并在我的自定义模块中使用它时遇到问题
我是odoo的新手,在模块开发方面有一点经验,我有一个与使公司印章出现在销售报价中相关的问题,我通过继承视图让它出现在那里,并且
Google Docs 插件的源代码可以从客户端看到或篡改吗?
我正在寻求开发一个 Google Docs 插件,并正在尝试考虑安全最佳实践。当安装浏览器扩展时,它显然会完全下载到客户端(它不能......
当我使用Google Sheet中添加的GA4报告生成器时,返回的数据仅限于10000行,如何返回全部数据? 我尝试返回选定时间段
用于表格中课堂管理的 Google 应用脚本插件存在问题 - 不同帐户上的脚本错误
我刚开始使用 Google Apps 脚本,需要一些帮助。我正在开展一个项目,创建一个用于管理“课堂”的 Google 表格,该表格可以在我们的组织中安装。我的目标是每个...
appscript Session.getActiveUserLocale 在我的 iPhone 上测试时不起作用
我正在开发一个 gmail 插件,我正在尝试使用 Session.getActiveUserLocale() 从 gmail 设置中获取用户的本地语言 这是我的功能 函数 getUserLanguage() { 常量洛...
我需要一个按钮来创建草稿并更新当前的卡片,但是我一次只能使用其中的一个。 // onGmailMessage.gs CardService.newTextButton() .setText('创建草稿并...
如何使用新的 Apps 脚本编辑器测试 Google 文档的编辑器插件?
我正在尝试测试我制作的 Google Docs 的简单附加组件,但似乎此页文档与旧版 Apps 脚本编辑器相关,并且我无法找到如何使用 . ..
“测试部署”->“创建新测试”在 AppsScript 项目 for Docs 插件中不起作用
我已添加到现有的 Google App Script 项目中,该项目作为编辑器插件部署。它已经部署并且可供用户使用,因此它有一个支持它的自定义项目,而不是默认项目。 ...
我在理解 Google Sheet 插件的工作流程时遇到了一些困难。我在其中也绑定了脚本的工作表中使用它,并且它工作得很好。但是,当我创建一个新的
Google App 脚本插件 createAddonMenu() 创建帮助菜单。怎么称呼呢?
使用新的 Google App 脚本(新电子表格),当我使用 createAddonMenu() 为我的附加组件创建菜单时,您会注意到 Google 在末尾自动添加了分隔符和帮助菜单。布...
也许这个问题很基本,但我试图了解用于附加组件的独立脚本中时间驱动触发器的本质。 我知道在绑定脚本中,时间驱动的触发器...
当前在 Google 文档插件中调用 showModalDialog() 将需要 3 秒才能显示模式弹出窗口。有时它要长得多:6 秒。 这是最低要求:将出现一个空白弹出窗口 - 至少...