⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 smiletext.as

📁 flashget43的源代码 一个比较常用的下载程序
💻 AS
📖 第 1 页 / 共 2 页
字号:
						var tmp_str = '';						while( true )						{								this.appendMessage(this.test_txt, tmp_str, 0, true);							if(this.test_txt.textWidth > (this.min_width - 40) || tmp_str == word)							{ 								msg_obj.sequence.label.push(this.WORD);								msg_obj.sequence.data.push(tmp_str);																if(tmp_str != word)								{									word = word.substr(tmp_str.length);									tmp_str = '';								}									else break;							}							tmp_str = word.substr(0, tmp_str.length + 1);						}												word = '';					}					}			}		}	}}//---_global.SmileText.prototype.addMessageToField = function(){	var msg_obj = this.messages[this.messages.length-1];	if(msg_obj == undefined) return;		var s_index = 0;			var add_txt = '';	for(var i = 0; i < msg_obj.smiles.length; i++)	{		add_txt = msg_obj.msg.substring( s_index, msg_obj.smiles[i].ind );				this.getWords(msg_obj, add_txt);				var smi = msg_obj.smiles[i]["smi"];		add_txt = this._SMI[smi]["spaces"];				msg_obj.sequence.label.push(this.SMILE);		msg_obj.sequence.data.push(add_txt);				s_index = msg_obj.smiles[i].ind + smi.length;				this.iconContainer.attachMovie( this._SMI[smi]["link"], "ico"+this.smile_counter, this.smile_counter++, {_visible : false} );				msg_obj.smiles[i]["ico"]          = this.iconContainer["ico"+(this.smile_counter)];		msg_obj.smiles[i]["ico"]["link"]  = this._SMI[smi]["link"];		msg_obj.smiles[i]["ico"]["msgId"] = this.messages.length-1;		msg_obj.smiles[i]["ico"]["icoId"] = i;	}		add_txt = msg_obj.msg.substr( s_index );	this.getWords(msg_obj, add_txt);		var msg = this.breakMessage(msg_obj.sequence);	this.appendMessage(this.smile_txt, msg, msg_obj.color, false);	this.AlignSmilies(); }_global.SmileText.prototype.AlignSmilies = function(){	if(!this.showSmilies) return;		this.onEnterFrame = function(){ updateAfterEvent(); }		var len = this.messages.length;		var dY =  0;		for(var i = 0; i < len; i++)	{		var msg_obj  = this.messages[i];				var curr_smi = 0, lines = 0;				var msg = '', otag = '', ctag = '';				for(var j = 0; j < msg_obj.sequence.label.length; j++)		{			var stype = msg_obj.sequence.label[j];			var sdata = msg_obj.sequence.data[j];						if(stype == this.WORD)			{				msg += sdata;			}			else if(stype == this.TAG)			{				if(sdata.length < 5) 				{ 					if(sdata.toUpperCase() == '<B>' || sdata.toUpperCase() == '<I>')					{ 						otag += sdata;						ctag += sdata.charAt(0) + '/' + sdata.substr(1);					}					else if(sdata.toUpperCase() == '</B>' || sdata.toUpperCase() == '</I>')					{						otag = ctag = '';					}					msg += sdata;				}			}			else if(stype == this.BREAK || stype == this.TMP_BREAK)			{				lines++;				msg = otag;			}			else if(stype == this.SMILE && (this.isRefresh == true || i == (len - 1)))			{				this.appendMessage(this.test_txt, msg + ctag, 0, true, true);				var l_width = this.test_txt.textWidth;								var x_y = new Object();				x_y.x = l_width + 2;				x_y.y = lines * this.textFieldHeight + 3;								var smi = msg_obj.smiles[curr_smi++];				var ico = this.smile2font(smi["ico"], x_y, dY, smi["smi"]);								//this.showSmile(ico);								msg_obj.sequence.data[j] = this._SMI[smi["smi"]]["spaces"];				msg += msg_obj.sequence.data[j];			}						updateAfterEvent();		}				dY += lines * this.textFieldHeight;	}			this.setMaxScroll();	this.smile_txt.onScroller(this.smile_txt);	this.onEnterFrame = this.updateScroll;		this.isRefresh = false;}_global.SmileText.prototype.showSmile = function(inIco){	var lines = this.smile_txt.bottomScroll - this.smile_txt.scroll;	inIco._visible = (					(Math.floor(inIco._y/this.textFieldHeight) <= lines && 					inIco._y > 0 && 					(inIco._x + inIco.width) < this.width) || 					lines < 2				 );}_global.SmileText.prototype.getLinesCount = function(_txt){ 		this.updateAfterEvent();	return (_txt.bottomScroll - _txt.scroll + _txt.maxscroll);	}//---_global.SmileText.prototype.replaceHTMLSpecChars = function(msg){	msg = this.str_replace(msg,"\n","<br>");	msg = this.str_replace(msg,"\r","<br>");		msg = this.str_replace(msg,"&lt;","<");	msg = this.str_replace(msg,"&gt;",">");	msg = this.str_replace(msg,"&amp;","&");	msg = this.str_replace(msg,"&apos;","'");	msg = msg.split("a> ").join("a>&nbsp;");	return (msg);}_global.SmileText.prototype.appendMessage = function(_txt, msg, _color, _clear, _nbsp){	if(msg == undefined) return;		if(_nbsp == true) msg = this.str_replace(msg," ","&nbsp;");		var _str = '<FONT FACE="' + this.tf_font + '" SIZE="' + this.tf_size + '" COLOR="#';	_str += Number(_color).toString(16) + '">';	_str += msg + '</FONT>';		if(_clear == true) _txt.htmlText = "";		_txt.htmlText += _str;	}//---//if smile found return array else undefined_global.SmileText.prototype.getSmilesInText = function( inTxt, inAvatar ){	var ret_arr = new Array();	var txt = inTxt;	var avatar = inAvatar;		if(inAvatar != null && inAvatar != '')	{ 		var startIndex = 0;		var ind = 0;		while( (ind = txt.indexOf(inAvatar,startIndex)) >= 0)		{			startIndex = ind + inAvatar.length;			var smi_obj = new Object();			smi_obj.ind = ind;			smi_obj.smi = inAvatar;			ret_arr.push(smi_obj);		}				//replace smile text		if(startIndex != 0)		{ 			var repl = '';			for(var i = 0; i < inAvatar.length; i++) repl+= '#';						txt = this.str_replace(txt, inAvatar, repl);		}	}			for(var smi in this._SMI)	{ 		if(smi == undefined) continue;			var startIndex = 0;		var ind = 0;				while( (ind = txt.indexOf(smi,startIndex)) >= 0)		{			startIndex = ind + smi.length;			//fix bug with 'mailto:p'			if(txt.substr(ind-6, 7) == 'mailto:') continue;						var smi_obj = new Object();			smi_obj.ind = ind;			smi_obj.smi = smi;			ret_arr.push(smi_obj);		}				//replace smile text		if(startIndex != 0)		{ 			var repl = '';			for(var i = 0; i < smi.length; i++) repl+= '#';						txt = this.str_replace(txt, smi, repl);		}	}		ret_arr.sort( this.sortSmilesInMessage );		return ret_arr;}_global.SmileText.prototype.setMinWidth = function(w) {	this.min_width = (w == undefined && w < 40)? this.min_width : w;}_global.SmileText.prototype.showSmiliesOnOff = function( flag ) {	//for(var i = 0; i < this.messages.length; i++) this.iconContainer["ico"+i]._visible = false;		for(var i = 0; i < this.messages.length; i++)	{ 		var msg_obj = this.messages[i];		for(var j = 0; j < msg_obj.smiles.length; j++) msg_obj.smiles[j]["ico"]._visible = flag;	}};_global.SmileText.prototype.setSize = function(w, h) {	if ((this.width == w) && (this.height == h) || w==undefined || h==undefined) 	{		return;	}		var fl = (this.width > w) || (this.height > h);	if( fl ) this.showSmiliesOnOff(!fl);		this.width = w;	this.height = h;			this.smile_txt._width = w - (this.scrollBar._visible ? this.scrollBar._width : 0);	this.test_txt._width = this.smile_txt._width;	this.smile_txt._height = h;		this.scrollBar._x = this.smile_txt._width;	this.scrollBar.setSize(h);	this.smiletext_background._width  = w;	this.smiletext_background._height = h;		this.mask._width  = w + 2;	this.mask._height = h + 2;		this.drawBorder();		this.refreshText();		if( fl ) this.showSmiliesOnOff(fl);};_global.SmileText.prototype.refreshText = function(){	if(!this.showSmilies) 	{ 		this.onEnterFrame = this.updateScroll;		return;	}		//refresh text	this.smile_txt.htmlText = "";	for(var i = 0; i < this.messages.length; i++)	{ 		var msg_obj = this.messages[i];		//remove tmp_break		var len = msg_obj.sequence.br_index.length;		for(var j = 0; j < len; j++)		{			var ind = msg_obj.sequence.br_index.pop();			msg_obj.sequence.label.splice(ind, 1);			msg_obj.sequence.data.splice(ind, 1);		}				var msg = this.breakMessage(msg_obj.sequence);		this.appendMessage(this.smile_txt, msg, msg_obj.color, false);	}		this.isRefresh = true;	this.onEnterFrame = this.AlignSmilies;}_global.SmileText.prototype.updateScroll = function(){ 	delete this.onEnterFrame;	this.scrollBar.setScrollTarget(this.smile_txt);}_global.SmileText.prototype.clear = function() {	this.smile_txt.htmlText = "";		this.resetTextLines();	this.messages = new Array();		for(var i = 1; i <= this.smile_counter; i++)	{		var ico = this.iconContainer["ico"+i];		if(ico.dummi) delete(this.iconContainer["ico"+i]);		else ico.removeMovieClip();	}		this.createEmptyMovieClip(this.iconContainer._name, this.iconContainer.getDepth());};//sets maximum number of messages in smile text._global.SmileText.prototype.setMaxMessageCount = function(inMaxMessageCount) {	this.maxMessageCount = inMaxMessageCount;};_global.SmileText.prototype.setEnabled = function(inEnabled) {	this.smile_txt.selectable = inEnabled;	this.scrollBar.setEnabled(inEnabled);};_global.SmileText.prototype.setBackgroundColor = function(inBackgroundColor, inAlpha) {	this.backgroundColor = inBackgroundColor;	var c = new Color(this.smiletext_background);	c.setRGB(this.backgroundColor);		this.smiletext_background._alpha = inAlpha;};_global.SmileText.prototype.setBorderColor = function(inBorderColor, inAlpha) {	this.borderColor = inBorderColor;	this.drawBorder();};//PRIVATE METHODS._global.SmileText.prototype.setupTextFormat = function(font_name, font_size){	if(font_name == this.tf_font && font_size == this.tf_size) return;		if(font_name == undefined)font_name = this.tf_font;	if(font_size == undefined)font_size = this.tf_size;		this.tf_font = font_name;	this.tf_size = font_size;		this.test_txt.multiline = true;	this.appendMessage(this.test_txt, "&nbsp;<br>&nbsp;<br>&nbsp;", 0, true);	this.textFieldHeight = this.test_txt.textHeight / 3 ;	this.spaceWidth	= this.test_txt.textWidth;		this.test_txt.multiline = false;		for(var i=0; i<SmileTextConst.patternList.length; i++)	{		var smile_name = SmileTextConst.patternList[i][0];				var dummyObj = {_xscale:100, _yscale:100};				this.smileSetSize(dummyObj, smile_name);		var need_spaces = Math.ceil( this._SMI[smile_name]["space_width"] / this.spaceWidth );				var spaces = "";		for(var j=0; j<need_spaces; j++) spaces += "&nbsp;";				this._SMI[smile_name]["spaces"] = spaces;		this.appendMessage(this.test_txt, this.str_replace(spaces, " ", "&nbsp;"), 0, true);		this._SMI[smile_name]["spaces_width"] = this.test_txt.textWidth;	}	};_global.SmileText.prototype.getLinesCount = function(_txt){ 		this.updateAfterEvent();	return (_txt.bottomScroll - _txt.scroll + _txt.maxscroll);	};_global.SmileText.prototype.getPropWidth = function() {	return this.width;};_global.SmileText.prototype.setPropWidth = function(inWidth) {	return this.setSize(inWidth, this.height);};_global.SmileText.prototype.getPropHeight = function() {	return this.height;};_global.SmileText.prototype.setPropHeight = function(inHeight) {	return this.setSize(inHeight, this.height);};_global.SmileText.prototype.resetTextLines = function() {	this.currentY = 0;	this.messageCount = 0;	this.smile_txt.text = '';	this.smile_txt.scroll = 1;};_global.SmileText.prototype.drawBorder = function() {	this.border.clear();	this.border.lineStyle(1, this.borderColor, 100);	this.border.moveTo(0, 0);	this.border.lineTo(this.width, 0);	this.border.lineTo(this.width, this.height);	this.border.lineTo(0, this.height);	this.border.lineTo(0, 0);};_global.SmileText.prototype.str_replace = function(str, _old, _new){	if(_new.indexOf(_old) >= 0) return str;		var str1,str2;	var pos = str.indexOf(_old);	while (pos >= 0 ){		str1 = str.substring(0, pos);		str2 = str.substring(pos+_old.length);		str  = str1 + _new + str2;		pos  = str.indexOf(_old);	};		return str;}; _global.SmileText.prototype.sortSmilesInMessage = function (a, b) {      if (a.ind < b.ind) { return -1;}    else if (a.ind > b.ind) {return 1;}    else {return 0;}};_global.SmileText.prototype.changeAvatar = function (inUserId){	/*	var msgs = new Array();	for(var i = 0; i < this.messages.length; i++)	{		var msg_obj = this.messages[i];		msgs[i] = new Object();		msgs[i].label  = msg_obj.label;		msgs[i].msg    = msg_obj.msg;		msgs[i].text   = msg_obj.text;		msgs[i].userId = msg_obj.userId;		msgs[i].color  = msg_obj.color;	}		this.clear();	for(i = 0; i < msgs.length; i++)	{		this.addText(msgs[i].label, msgs[i].text, msgs[i].color, msgs[i].userId); 	}	*/}; Object.registerClass('SmileText', _global.SmileText);#endinitclip

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -