相当于Date类型的“undefined”

时间:2014-01-30 10:52:48

标签: actionscript-3 date undefined flashvars

我正在制作视频播放器,我遇到了一些flashvars问题。这就是我定义flashvars的方式:

var beginLive:Date = getFlashVar('beginLive', "undefined");
var endLive:Date = getFlashVar('endLive', "undefined");

我必须检索这些变量的值(时间戳)。 我的功能是将秒数转换为秒/分钟/小时 - >它正在计算流的预期持续时间。

这是我的getFlashVar函数:

//return the content for the flashvar specified by varName, if found, otherwise return the defaultvalue specified

    function getFlashVar(varName:String, defaultValue:String):String {
        var result:String = defaultValue;
        if (undefined != paramsArray[varName] && '' != paramsArray[varName]) {
            result = paramsArray[varName] ;
            //ExternalInterface.call("displayVar", paramsArray);
        }
        return result;
    }

我的问题是我必须将beginLive和endLive初始化为“undefined”,但它们的类型为Date,“undefined”是一个字符串。

Date类型是否等同于“undefined”?如何初始化这些变量并避免Flash抱怨不兼容的类型?

感谢您的回答:)。

LEA。

1 个答案:

答案 0 :(得分:0)

您可以添加一个方便方法,尝试将getFlashVar函数中的结果字符串解析为Date对象。如果输入字符串可以解析为日期,则返回Date对象,否则返回undefined

public static function parseDateFromString(value:String):Date {
    var dateObject:Number = Date.parse(value);
    if (isNaN(dateObject)) {
        return undefined;
    }
    return new Date(dateObject);
}

要使用它,请将返回值从getFlashVar传递到parseDateFromString,如下所示:

var beginLive:Date = parseDateFromString(getFlashVar('beginLive', "undefined"));
var endLive:Date = parseDateFromString(getFlashVar('endLive', "undefined"));

示例输出:

trace(parseDateFromString("01/30/2014")); // Thu Jan 30 00:00:00 GMT+0100 2014 (Date object)
trace(parseDateFromString("undefined")); // null (actually undefined)