首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AS3 BBcode还是替代技术?

AS3 BBcode还是替代技术?
EN

Stack Overflow用户
提问于 2011-01-03 04:04:50
回答 2查看 302关注 0票数 1

我正在做一个网站在AS3/PHP (数据库调用),我想加载主页上的新闻,饲料从mySQL数据库。使用AMFPHP获取纯文本没有问题。但我在寻找一些不同的东西。我知道如何在AS3中加载图片/YouTube视频,所以我想用它来给新闻增添一点情趣。有没有什么方法可以让我像这样输入

代码语言:javascript
复制
Lorem ipsum dolor sit amet, consectetur adipiscing elit. 
[video]AAAAAAAAAAA[/video]
Donec commodo condimentum enim, vitae consectetur felis pharetra a.

它将在我的文本之间创建一个YouTube应用程序接口类的实例,并创建两个TextFields?没有针对AS3的BBcode库,所以我的第二个猜测是...正则表达式。然而,我似乎不能理解这一点,有人想尝试同样的事情并成功吗?

提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-01-03 17:42:22

对于正则表达式来说,这是一个完美的工作。

代码语言:javascript
复制
var myPattern:RegExp = /\[video\]([a-zA-Z0-9_-]+)\[\/video\]/g;  

方括号[ ]和斜杠/是保留字符,因此需要用反斜杠对它们进行转义。[a-zA-Z0-9_-]是可以在有效youtube id中使用的字符范围。

要使用正则表达式,请执行以下操作:

代码语言:javascript
复制
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条件来将相同的代码压缩到更少的行中:

代码语言:javascript
复制
var result:Object;
while (result == myPattern.exec(str)) {
    trace( "id is: " + result[0] + " at index: " + result.index);
}

这在功能上是等效的,但可能更难掌握。

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

票数 1
EN

Stack Overflow用户

发布于 2011-01-03 10:17:53

您应该能够将其与String split()方法一起使用。定义一个分隔符并使用split()方法返回子字符串数组。

这是一个基本的例子,我相信你可以优化它。

代码语言:javascript
复制
 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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4580234

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档