在两个文件之间共享按钮变量

sharing a button variable between two files

本文关键字:之间 共享 按钮 变量 文件 两个      更新时间:2023-09-26

我有一个按钮,单击该按钮时会打开一个具有附加共享功能的模式窗口。在Android上一切正常,但是我在iOS上遇到了一个小问题。我能够共享一个只是一个数字的变量,但不能共享一个按钮的变量。以下代码来自主应用程序.js:

var shareBtn2;
var fullScore;
shareBtn2.addEventListener('singletap', function (e){
    shareBtn2.setBackgroundImage('share_pressed.png');
    var shareModal = require('shareModal');
    var shareModalView = new shareModal();
    Ti.App.myGlobalVar=shareModalView;
    win2.add(shareModalView);
    if (DJBool){
        Ti.App.fireEvent('shareModalEvent', {
              myBtn: shareBtn2,
              myPts: Math.round(fullScore)
        });
        alert('Was a DJBool');
    }

然后在我的第二个文件中,其中包含 4 个按钮,用于通过 FB、Twitter、电子邮件和取消按钮共享。

Ti.App.addEventListener('shareModalEvent', function(event) {
    globalPts=event.myPts;
    globalBtn=event.myBtn;
    alert('received share modal event');
});
console.log(typeof globalPts);//outputs number
console.log(typeof globalBtn);//outputs undefined
我在第二个文件中

需要这个按钮的唯一原因是,如果用户按下第二个文件中的"取消按钮",我想将我的 shareBtn 的背景图像更改为其原始状态。

cancelBtn.addEventListener("click", function (e){
        cancelBtn.setImage('cancelShare_pink.png');
        win2.remove(Ti.App.myGlobalVar);
        globalBtn.setBackgroundImage('share.png');
    });

希望我已经清楚了。

事实证明,您不能在事件中传递圆形 Ti.UI 对象,只能在 IOS 中传递原语(如字符串、数字),但它适用于 Android。最后,我写了另一个自定义事件来解决问题