首页 > 编程学习 > 完美支持中文wp-cumulus标签云插件源码(无锯齿无抖动7K大小)
20107 月24

完美支持中文wp-cumulus标签云插件源码(无锯齿无抖动7K大小)

1、首先安装wp-cumulus 标签Tag Cloud插件

这个不用教了吧?:)啰嗦一下:

参数:

wp_tag_cloud parameters:smallest=8&largest=22&number=45

设置最小字体、最大字体、总数量

应用:

若网站主题不能自动支持,可以手动编辑php文件,加入 <?php wp_cumulus_insert(); ?> 代码。

2、使用说明

鼠标右击下面链接,选择“另存为”(仅7K大小,效果见本站首页右下):

/wp-content/plugins/wp-cumulus/tagcloud.swf

上传替换网站 /wp-content/plugins/wp-cumulus/ 下tagcloud.swf文件,即可完美支持中文。

——以下是开发者阅读,普通用户可以略过————————————————————

3、修改wp-cumulus源代码

安装Adobe Flash CS4 后打开wp-cumulus源文件,按照上图步骤,选择“tag”文本框,不嵌入字符。

4、修改Tag.as

打开  C:\wp-cumulus\flash sources\com\roytanck\wpcumulus\Tag.as

源代码:

package com.roytanck.wpcumulus
{

	import flash.geom.ColorTransform;
	import flash.filters.*;
	import flash.display.*;
        import flash.events.*;
        import flash.net.*;
        import flash.text.*;
	public class Tag extends Sprite {

		private var _back:Sprite;
		private var _node:XML;
		private var _cx:Number;
		private var _cy:Number;
		private var _cz:Number;
		private var _color:Number;
		private var _hicolor:Number;
		private var _active:Boolean;
		private var _tf:TextField;

		public function Tag( node:XML, color:Number, hicolor:Number ){
			            _node = node;
            _color = color;
            _hicolor = hicolor;
            _active = false;
            _tf = new TextField();
            _tf.autoSize = TextFieldAutoSize.LEFT;
            _tf.selectable = false;
            _tf.antiAliasType = AntiAliasType.ADVANCED;
	    var format:TextFormat = new TextFormat();
            format.font = "微软雅黑, Arial, 黑体";//设置字体
            format.bold = true;
            format.color = color;
            format.size = 16 * getNumberFromString(node["@style"]);
            _tf.defaultTextFormat = format;
	    //_tf.embedFonts = true;  //是否使用字符库,这个肯定要注释掉
            _tf.text = node;
            var _loc_5:BlurFilter = new BlurFilter(5, 5, 1);
            _tf.filters = [_loc_5];
	    var _loc_6:Bitmap = new Bitmap(null, "auto", true);
            var _loc_7:BitmapData = new BitmapData(_tf.width, _tf.height, true, color);

            _loc_7.draw(_tf);
            _loc_6.bitmapData = _loc_7;
            _loc_6.scaleY = 0.15;
            _loc_6.scaleX = 0.15;

            addChild(_loc_6);
            _loc_6.x = (-this.width) / 2;
            _loc_6.y = (-this.height) / 2;
            _back = new Sprite();
            _back.graphics.beginFill(_hicolor, 0);
            _back.graphics.lineStyle(0.6, _hicolor);
            _back.graphics.drawRect(0, 0, _loc_6.width, _loc_6.height);
            _back.graphics.endFill();
            addChildAt(_back, 0);
            _back.x = (-_loc_6.width) / 2;
            _back.y = (-_loc_6.height) / 2;
            _back.visible = false;
			if( _node["@href"].substr(0,4).toLowerCase() == "http" ){
				this.mouseChildren = false;
				this.buttonMode = true;
				this.useHandCursor = true;
				this.addEventListener(MouseEvent.MOUSE_OUT, mouseOutHandler);
				this.addEventListener(MouseEvent.MOUSE_OVER, mouseOverHandler);
				this.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
			}
		}

		private function mouseOverHandler( e:MouseEvent ):void {
			_back.visible = true;
			_tf.textColor = _hicolor;
			_active = true;
		}

		private function mouseOutHandler( e:MouseEvent ):void {
			_back.visible = false;
			_tf.textColor = _color;
			_active = false;
		}

		private function mouseUpHandler( e:MouseEvent ):void {
			var request:URLRequest = new URLRequest( _node["@href"] );
			var target:String = _node["@target"] == undefined ? "_self" : _node["@target"];
			navigateToURL( request, target );
		}

		private function getNumberFromString( s:String ):Number {
			return( Number( s.match( /(\d|\.|\,)/g ).join("").split(",").join(".") ) );
		}

		public function set cx( n:Number ){ _cx = n }
		public function get cx():Number { return _cx; }
		public function set cy( n:Number ){ _cy = n }
		public function get cy():Number { return _cy; }
		public function set cz( n:Number ){ _cz = n }
		public function get cz():Number { return _cz; }
		public function get active():Boolean { return _active; }

	}

}

5、源代码下载

由于本空间不支持rar文件,所以有兴趣的可以到我的CSDN地址下载:

http://download.csdn.net/source/2571076

6、说明

花了一天的时间,查找了许多资料,先是官方的不支持中文,后来找到方法支持中文但是有抖动的现象,效果不好,再后来找到无抖动的swf文件,但是不开源,于是自己琢磨。。

请保留本站链接,咱都不收费而且开源了,是吧?。。呵呵

把一些注释、空格、再优化下代码,swf文件还可以压缩,这个需要你自己尝试了。。。

本文地址:https://wizzer.cn/archives/482 , 转载请保留.

22 Responses to “完美支持中文wp-cumulus标签云插件源码(无锯齿无抖动7K大小)”

  1. #1 Uncleyu 回复 | 引用 Post:2010-07-24 22:44

    帅哥,你真厉害啊

  2. #2 TJJTDS 回复 | 引用 Post:2010-07-24 23:31

    帅哥,我爱你~~ 你愿意娶我吗?

  3. #6 软件盒子 回复 | 引用 Post:2010-07-24 23:36

    第一个评论好好激动

  4. #7 死灰 回复 | 引用 Post:2010-07-25 00:21

    谢谢你啊,O(∩_∩)O~

  5. #9 fu 回复 | 引用 Post:2010-12-16 13:28

    若网站主题不能自动支持,可以手动编辑php文件,加入 代码。

    你好,这个php的代码加到哪里呢?请赐教啊~谢谢

    • #10 Wizzer 回复 | 引用 Post:2010-12-16 13:59

      1、如主题是标准的设计,则可以在后台:外观-小工具-把 WP-Cumulus 拖动右侧边栏,设置颜色等参数即可。
      2、如主题是自定义的,则修改主题文件夹下面的 sidebar.php 侧边栏文件,把那段代码加在合适位置。

  6. #11 fu 回复 | 引用 Post:2010-12-16 20:26

    可以了,我下载wp_cumulus时,下错了。。。不好意思,打扰了!
    谢谢!

  7. #12 endless 回复 | 引用 Post:2010-12-18 17:34

    教程好!

  8. #13 loethen 回复 | 引用 Post:2011-04-14 16:32

    感谢分享 呵呵~

  9. #14 michelameng 回复 | 引用 Post:2011-07-02 00:15

    正需要呢~~

  10. #15 BBIN 回复 | 引用 Post:2011-08-21 14:48

    中文是支持了,也没有抖动,缩放滚动也流畅了
    但插件原有的文字大小设置全部都失效了,标签文字全部是统一大小的。
    看不出来主次之分

  11. #16 gianttimes 回复 | 引用 Post:2011-08-28 20:22

    字体大小,怎么设置呢?大侠帮忙

  12. #17 booleaner 回复 | 引用 Post:2011-09-12 16:08

    还是不太流畅
    而且好小个啊
    具体后台怎么设置啊?

  13. #18 pt 回复 | 引用 Post:2011-10-08 22:46

    太好了,我网站已经装上了,很流畅,不卡。谢谢

发表评论