11月 292014
 

聊天的时候,或留言或其他情况下。做文本的htmlText输出的时候,我们需要将字符串编码成html样的形式。才能渲染出具有html应用的效果。可是,当遇到html样式不需要转换的时候,也就是原文输出的时候。这个时候就得对html样式就行再编码。下边贴出一种转换方式。
原文地址:http://stackoverflow.com/questions/2342453/encode-html-in-flex-actionscript

var text:TextField = new TextField();
text.autoSize = TextFieldAutoSize.LEFT;
text.selectable = false;  //纯as下可以跳转,flex下却不可以
text.htmlText = "<a href = 'http://hao123.com'> 千百度 </a>";
text.htmlText += "<a href = 'event:http://vini123.com'> 非你网 </a>";
text.htmlText += htmlEscape("<a href = 'event:http://vini123.com'> 非你网 </a>");
text.addEventListener(TextEvent.LINK , textLinkHandler);
addChild(text)

text.x = 10;
text.y = 10;

function textLinkHandler(e:TextEvent):void
{
    var url:String = e.text;
    navigateToURL(new URLRequest(url) , "_blank");
}

function htmlEscape(str:String):String
{
    return XML( new XMLNode( XMLNodeType.TEXT_NODE, str ) ).toXMLString();
}

 

 Posted by at 下午12:05
11月 292014
 

在flex项目中,如果用到TextField,其htmlText属性遇到a标签。其写法正确。如果TextField的selectable设置为false的时候,浏览器将不会弹出链接窗口。但是在纯as项目中则可以。

       var text:TextField = new TextField();
       text.autoSize = TextFieldAutoSize.LEFT;
       text.selectable = false;  //纯as下可以跳转,flex下却不可以
       text.htmlText = "<a href = 'http://hao123.com'> 千百度 </a>";
       text.htmlText += "<a href = 'event:http://vini123.com'> 非你网 </a>"
       text.addEventListener(TextEvent.LINK , textLinkHandler);
       addChild(text)
            
       text.x = 10;
       text.y = 10;
            
       function textLinkHandler(e:TextEvent):void
       {
           var url:String = e.text;
           navigateToURL(new URLRequest(url) , "_blank");
       }

 

 Posted by at 上午11:45
11月 292014
 

一般,都是读取外部的xml。有些时候,也需要动态创建xml。记得用{},包装过来的参数。

package
{
    import flash.display.Sprite;
    
    public class DymicXML extends Sprite
    {
        private var soundData:XML;
        private var urlArr:Array;
        private var nameArr:Array;
        private var lrcUrlArr:Array;
        private var artPhotosArr:Array;
        
        public function DymicXML()
        {
            initialize();
        }
        
        private function initialize():void
        {
            urlArr = ["a.mp3" , "b.mp3" , "c.mp3"];
            nameArr = ["怎么说我不爱你" , "难以启齿的柔弱" , "红色高跟鞋"];
            lrcUrlArr = ["a.lrc" , "b.lrc" , "c.lrc"];
            artPhotosArr = ["a.jpg" , "b.jpg" , "c.jpg"];
            
            soundData = new XML("<sounds></sounds>");
            
            var len:int = nameArr.length;
            for(var i:int = 0 ; i < len ; i++)
            {
                addXMLChild(urlArr[i] , nameArr[i] , lrcUrlArr[i] , artPhotosArr[i]);
            }
            trace(soundData);    
        }
        
        private function addXMLChild(url:String , name:String , lrcUrl:String , artPhotos:String):void
        {
            var xml:XML = <soundItem> 
                            <url>{url}</url>
                            <name>{name}</name>
                            <lrcUrl>{lrcUrl}</lrcUrl>
                            <artPhotos>{artPhotos}</artPhotos>
                    </soundItem>
            soundData.appendChild(xml);
        }
    }
}

 

 Posted by at 上午11:12
11月 172014
 

虽然,图文混排不是as的强项。可是,在需要,在用的时候,还是能做出一定效率,一定排版的图文混排的。

在flash不再风风火火的时代,写这个。一是因为喜欢,二是做一个简单的总结。

在很久很久以前,比较流行的第三方组织的图文混排有两个。一个是RichTextField,另一个是6dn的RichTextArea。

RichTextField所用的表情是MovieClip对象。而RichTextArea所用的表情既可以是MovieClip对象,还可以用gif表情,以及jpg,png图片。

虽然,以上两种都可以做到图文混排。但也有不完美的地方。

1,图文删除后,资源没有释放。
2,图文替换,定位也不方便。

在现在的项目中,有这样一种需求。
1,定义图文消息的条数。假如是200条。大于200条,就开始删除第一条。
2,图文中,会有些动画,动画播放完了,用静止其他图片替换之前的动画图片。
经过修改RichTextArea,可以达到以上的要求。在这里,我们可以这样做。无论是RichTextField,还是RichTextArea,其例子,只会创建一个实例。
在这里,可以创建很多实例。以聊天来说。来一条消息,就创建一个实例。当然实例是被封装起来的。在类里,不仅定义类的实例,还有之于相关的封装。

以上两种,其包含的图文样式有文本,链接,还有表情。其组织形式是html的方式。只要去组织,是可以实现各种样式的图文的。

缺点:配置xml处理那块不完美,用的是for寻找。

在之前,也接触到了TextFlow。用了TextFlow之后,你就会发现TextFlow比以上的两种更灵活,更好控制,自由度也更大。只是TextFlow编译出来文件量大,要了解的的API比较多。

https://code.google.com/p/richtextfield/

http://www.6dn.cn/blog/article.asp?id=148

有时间,将以上三种再整理,做出demo来。今天先这些了。

 Posted by at 下午11:07
11月 162014
 

好久,都没去整微信公众平台了。因为对php代码确实不熟,做什么功能,都得一点一点的查,然后一点一点的平凑。

有很多事情要去做,很多想法都要去实现。现实中,却一拖再拖。热情依旧,也许少了点曾经的执着。这个周末,又是阴雨天。于是决定窝在家里,将音乐搜索功能做到微信公众平台里。

过程:
1,去aol搜关键字“php微信公众平台百度音乐”,就可以找到相关的文章。好几篇都大同小异。选择一篇能够让你获取到百度音乐url的文章。

(对php不熟悉,从0开始去写去开发肯定是不靠谱不科学的。能用别人的就用别人的)。

2,在本地建好站点环境。将文章中的代码跑起来。然后测试。看看能不能获取到音乐url。

3,这个百度api能用的参数有两个,一个是歌名,另一个是歌手名。参数可选的。

4,以上步骤做好了,对照之前的项目,以及官方微信公众平台的要求,剥离组织出适合微信公众平台的方法来。整合进之前的代码。

5,这个有局限,好些音乐都不能获取到。要做好没获取到的时候处理,不能让用户(粉丝)干等着。

好了,下边贴出我自己抽离出的代码:

Continue reading »

网站地图