我正在尝试使用以下语法在外部文件中包含一个长字符串:
<fx:String id="myText" source="examples/text.txt" />
但它产生了一个错误:
1084: Syntax error: expecting identifier before rightparen.
有什么我想念的吗?
我已经看到类似于使用ActionScript嵌入文本文件,但我想使用MXML嵌入字符串值。
我在Flex help docs上找到了这个例子:
<fx:String id="myStringProperty1" source="./file"/>
我看不到任何与众不同的事情。
答案 0 :(得分:0)
好的,我找到了原因。在我的外部文件中,我有一些花括号。编译器被挂起了。
以下是我的外部文件的内容:
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<style type="text/css" media="screen">
html, body {
height:100%;
}
</style>
</head>
</html>
它具有body { height:100% }
的部分将其解释为数据绑定。这是生成的ActionScript:
result[1] = new mx.binding.Binding(this,
function():String
{
var result:* = "<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en\" xml:lang=\"en\"> \n <head>\n <style type=\"text/css\" media=\"screen\"> \n html, body " + (
height:100%;
) + "\n </style>\n </head>\n</html>";
return (result == undefined ? null : String(result));
},
null,
"HTML"
);
正如你所看到的,它认为我在花括号之间使用数据绑定。因为我不是,所以它会抛出一个错误,因为“高度:100%”在使用它的情况下是脱离背景的。
我想我必须尝试一种不同的方法来嵌入这个文本。如果我使用它似乎没问题,但我宁愿不这样做:
<fx:String id="HTML">
<![CDATA[<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<style type="text/css" media="screen">
html, body {
height:100%;
}
</style>
</head>
</html>]]>
</fx:String>
<强> UPDATE !!! 强>
我错了!有可能的。我必须至少逃脱开口的大括号,然后才行。
有效的文件内容:
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<style type="text/css" media="screen">
html, body \{
height:100%;
\}
</style>
</head>
</html>