AS3 BBcode还是更换技术?

时间:2011-01-02 20:04:50

标签: php flash actionscript-3 bbcode amfphp

我正在使用AS3 / PHP(databasecalls)创建一个网站,我想在主页上加载新闻,从mySQL数据库提供。使用AMFPHP获取纯文本没问题。但我正在寻找不同的东西。我知道如何在AS3中加载图像/ YouTube视频,所以我想稍微用这个来增加新闻。有什么方法可以输入像

这样的东西
Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
[video]AAAAAAAAAAA[/video]
Donec commodo condimentum enim, vitae consectetur felis pharetra a.

它会在我的文本和制作两个TextField之间建立我的YouTube API类的实例吗? AS3没有BBcode库,所以我的第二个猜测是......正则表达式。似乎无法解决这个问题,但是,任何人都想尝试同样的事情并成功吗?

提前致谢。

2 个答案:

答案 0 :(得分:1)

您应该能够使用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...
  }

答案 1 :(得分:1)

这是正则表达式的完美工作。

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);
}

您还可以通过将assingment作为while条件将相同的代码压缩为更少的行:

var result:Object;
while (result == myPattern.exec(str)) {
    trace( "id is: " + result[0] + " at index: " + result.index);
}

这在功能上是等同的,但可能有点难以掌握。

现在你有索引和id,剩下的就是拆分文本并插入视频!