在as3中,if语句可以运行事件跟踪器还是调用函数?

时间:2012-09-05 23:48:57

标签: actionscript-3 flash

我遇到了一些我不熟悉的语法,无法在线找到任何参考资料。

在下面的as3函数中是调用'sendTrackingEvent'函数的if语句?在'sendTrackingEvent'函数中是if语句发送跟踪事件吗?

function trackingHandler(page: String)
{
    if (! sendTrackingEvent(EID,"Document View",page))
    {
        fl_SavePreferences_5(EID + ",Document View," + page);
    }

}



function sendTrackingEvent(category:String, action:String, label:String):Boolean
{
    if (tracker.trackEvent(category,action,label))
    {

        return true;
    }
    else
    {

        return false;
    }
}

提前感谢您的帮助。我还在学习。

1 个答案:

答案 0 :(得分:1)

sendTrackingEvent是一个返回true或false的函数

第一个if语句正在评估该函数的RESPONSE(返回值)。因此,如果sendTrackingEvent(EID,"Document View",page)返回false,那么您的if语句将运行(因为!表示不是真的)。​​

sendTrackingEvent内的第二个if语句相同。

它正在评估tracker.trackEvent(category,action,label)的返回值。


该功能(sendTrackingEvent)实际上可以简化为:

function sendTrackingEvent(category:String, action:String, label:String):Boolean
{
    return tracker.trackEvent(category,action,label);
}

就此而言,您甚至不需要sendTrackingEvent函数,因为您可以这样做:

function trackingHandler(page: String)
{
    if (! tracker.trackEvent(EID,"Document View",page))
    {
        fl_SavePreferences_5(EID + ",Document View," + page);
    }

}