如何确定文件或常规字符串? AS3

时间:2012-02-01 15:30:22

标签: actionscript-3 greensock

我从mxl加载字符串。 一些字符串是文件路径,其中一些只是普通字符串。 如何确定谁是文件以及谁是常规字符串?

由于

3 个答案:

答案 0 :(得分:2)

如果您可以编辑xml,我会在我的xml结构中使用<file><string>标记(或属性)。然后在阅读它时,你知道它是什么,而没有额外的开销,看看文件是否存在。

如果要检查文件是否存在,而不使用AIR或其他第三方swf包装器,可以尝试使用URLRequestURLLoader加载路径并侦听

IOErrorEvent.IO_ERROR(它不存在)

Event.COMPLETE(已加载,确实存在)。

如上所述,最好的方法是编辑xml。

答案 1 :(得分:0)

如果文件路径遵循其他字符串不遵循的特定模式,则可以根据该模式进行区分。例如,如果所有路径都以http://开头,则可以检查字符串是否存在http://。如果路径和其他字符串之间没有这种区别,则可以向XML标记添加属性或子元素,以指示哪些XML元素包含路径。这是一个例子:

<强> XML

<root>
    <string>abc<string>
    <string isPath="true">abc.txt</string>
    <string isPath="false">xyz</string>
</root>

<强> AS3

var xml:XML; // I'm assuming that this variable already contains the XML

var paths:XMLList = xml.string.(@isPath == 'true');
var regularStrings:XMLList = xml.string.(@isPath != 'true');

答案 2 :(得分:0)

您可以对每个字符串使用正则表达式检查。 This页面解释了RegExp语法的用法和一些示例。正则表达式包含的内容取决于文件位置的外观,但您可以查找的是文件类型后缀。

我刚刚找到this tool来构建和测试正则表达式。

以下正则表达式将匹配以文件扩展名结尾的任何单词(没有空格的子字符串),例如.pdf或.mp3。但它也会识别.com,.org等,所以希望你的字符串不包含网站网址。

var str:String = inputString; // Each string you want to test.
var regEx:RegExp = /\.[a-zA-Z0-9]+\b/; // Note that no quotes are needed.
var matches:Boolean = regEx.test(str); // True for match, false for no match.