我正在做一个网站在AS3/PHP (数据库调用),我想加载主页上的新闻,饲料从mySQL数据库。使用AMFPHP获取纯文本没有问题。但我在寻找一些不同的东西。我知道如何在AS3中加载图片/YouTube视频,所以我想用它来给新闻增添一点情趣。有没有什么方法可以让我像这样输入
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
[video]AAAAAAAAAAA[/video]
Donec commodo condimentum enim, vitae consectetur felis pharetra a.它将在我的文本之间创建一个YouTube应用程序接口类的实例,并创建两个TextFields?没有针对AS3的BBcode库,所以我的第二个猜测是...正则表达式。然而,我似乎不能理解这一点,有人想尝试同样的事情并成功吗?
提前谢谢。
发布于 2011-01-03 17:42:22
对于正则表达式来说,这是一个完美的工作。
var myPattern:RegExp = /\[video\]([a-zA-Z0-9_-]+)\[\/video\]/g; 方括号[ ]和斜杠/是保留字符,因此需要用反斜杠对它们进行转义。[a-zA-Z0-9_-]是可以在有效youtube id中使用的字符范围。
要使用正则表达式,请执行以下操作:
var str:String = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. \n[video]AAAAAAAAAAA[/video]\nDonec commodo condimentum enim, vitae consectetur felis pharetra a.";
var result:Object = myPattern.exec(str);
while (result != null) {
trace( "id is: " + result[0] + " at index: " + result.index);
result = myPattern.exec(str);
}您还可以通过将赋值作为while条件来将相同的代码压缩到更少的行中:
var result:Object;
while (result == myPattern.exec(str)) {
trace( "id is: " + result[0] + " at index: " + result.index);
}这在功能上是等效的,但可能更难掌握。
现在有了索引和id,剩下的就是拆分文本并插入视频了!
发布于 2011-01-03 10:17:53
您应该能够将其与String split()方法一起使用。定义一个分隔符并使用split()方法返回子字符串数组。
这是一个基本的例子,我相信你可以优化它。
private var result:String = "Lorem ipsum dolor sit amet, consectetur adipiscing
elit [--video--]myexample.com/video_url[--video--] Donec commodo condimentum enim, vitae
consectetur felis pharetra a."
private var separator:String = "[--video--]";
//Assuming that you're only using one video...
private function parseString(value:String ):void
{
var texts:Array = value.split( separator );
if( texts.length >= 2 ) //there's a video
initTextWithVideo( texts );
else // it's only text
initText( result );
}
private function initTextWithVideo( value:Array ):void
{
var text1:String = value[0];
var videoURL:String = value[1];
var text2:String = value[2];
//etc...
}https://stackoverflow.com/questions/4580234
复制相似问题