AS工程中的Loading应用

今天又来介绍Loading...(-_-!!!...好像整天都介绍Loading..希望没误导各位...)

首先..由于AS工程没有帧..所以不能用常用的方法来做Loading..

这里介绍的方法使用元标签Frame(应该是元标签吧?还是叫元数据标签)

网上对Frame的介绍是...使用指定的类替换文档类...

并把其它的东西都丢到了该类的第二帧...

概念就不多说了...英文好的可以看看这个文章...http://www.bit-101.com/blog/?p=946

先看看效果..(PS...Load完以后有CD的艳照喔...~~xixi);

查看文章剩余部份
分类: ACTIONSCRIPT , 标签: ,

扩展TextField,合理计算中文字符长度

由于在储存与显示中文字符的时候..
每个中文字符都占用两个英文字符的位置(显示以宋体为准,特殊字符除外)..

所以我们经常在留言~标题~名称等应用上~需要对中文字符长度进行处理并限制...

最近在做一个许愿的项目..也遇到了这样的问题...
以前的方法是侦听Event.CHANGE事件在每次内容修改的时候对内容进行裁剪...
这种做法有二缺点:
1.内容会先显示出来..然后再剪掉..视觉上会"闪"一下
2.如果我焦点在中间~那输入后会剪掉尾部的内容

今天重点整理了一下~从TextEvent.TEXT_INPUT事件入手..在内容到显示前先对内容运行处理..
视觉和功能上都可以满足需求..
先看看效果:

//Copyright © 2009. Http://L4cd.Net All Rights Reserved.
package net.L4cd.display
{
	import flash.events.Event;
	import flash.events.TextEvent;
	import flash.text.TextField;
	import flash.utils.ByteArray;

	/**
	 * 扩展TextField类,中文以2字符长度计算
	 *
	 * @author L4cd.Net
	 * @playerversion Flash player 9
	 * @langversion 3.0
	 * @version 2009-06-16
	 */
	public class TextFieldExt extends TextField
	{
		private var _maxChars:int = -1;
		public function TextFieldExt()
		{
			super();
			
		}
		override public function get maxChars():int
		{
			return _maxChars;
		}
		override public function set maxChars(value:int):void
		{
			_maxChars = value;
			if(maxChars<0)
			{
				removeEventListener(TextEvent.TEXT_INPUT,input);      
			}else
			{
				addEventListener(TextEvent.TEXT_INPUT,input);
				text = getTextByCharLength(text,maxChars);
			}
		}
		override public function get length():int
		{
			return getCharLength(text);
		}
		private function input(e:TextEvent):void
		{
			//拦截并阻止textinput事件,手动处理内容输入
			var textField:TextField = e.currentTarget as TextField;
			var temp:String = getTextByCharLength(e.text,maxChars - getCharLength(text) + getCharLength(selectedText));
			var index:int = selectionBeginIndex;
			replaceText(selectionBeginIndex,selectionEndIndex,temp);
			setSelection(index+temp.length,index+temp.length);
			dispatchEvent(new Event(Event.CHANGE,true));
			e.preventDefault();
		}
		/**
		 * 获取字符长度,一个中文算2长度
		 * @param txt
		 * @return 返回长度值
		 */    
		private function getCharLength(txt:String):int
		{
			var byte:ByteArray = new ByteArray();
			byte.writeMultiByte(txt,"gb2312");
			byte.position = 0;
			return byte.bytesAvailable;
		}
		/**
		 * 截取指定长度的文本内容,一个中文算2长度
		 * @param txt 需要截取的文本
		 * @param length 需要截取的长度
		 * @return 截取后的内容
		 */    
		private function getTextByCharLength(txt:String,length:int):String
		{
			if(length<1)return "";
			var byte:ByteArray = new ByteArray();
			byte.writeMultiByte(txt,"gb2312");
			byte.position = 0;
			return byte.readMultiByte(Math.min(length,byte.bytesAvailable),"gb2312");
		}
	}
}
分类: ACTIONSCRIPT , 标签: , ,

期待已久:Adobe® Flash® Builder™ 4/Adobe Flash Catalyst™ beta

PM:02:00
中午偷偷上了下QQ..
发现群里人的讨论热烈...
原来 Flash Builder 4 出来了...
赶紧上 http://labs.adobe.com/downloads/ 看了下..
Adobe® Flash® Builder™ 4和Adobe Flash Catalyst™ beta已经放出下载地址...
难不成是六一儿童节的礼物..hehe

可惜公司下不了..晚上回家继续....

PM22:00
终于下载完了...因为同时下载FB和FC有点慢..速度保持100k下了一个小时...
以下不是测试报告..只是走马观灯~随便看看:
001:关于页面
FB4-关于页面
查看文章剩余部份
分类: FLASH , 标签: ,

AS工程下,使用TextField的IMG标签显示Embed的图片

在Flash IDE下..我们直接使用
txt.html = "这里显示一张库里的图片<img src='库id'/>";
即可把库里的图像显示到文本框内
查看文章剩余部份
分类: ACTIONSCRIPT , 标签: , ,

StandingWave2应用一例:使用AS3播放WAV文件

使用过flash做音乐播放器的朋友应该知道..
flash只支持mp3格式的音乐文件

PS:
1.当然还有flv和mp4相关的声音格式..今天就不多讨论了..
2.这里说的是纯AS环境..调用JS就不多说了...

不过上周noteflight在google code发布StandingWave(http://code.google.com/p/standingwave/)
该类库可以让AS3播放wav..由于网上的介绍比较少..今天顺便介绍一下使用方法
查看文章剩余部份
分类: ACTIONSCRIPT , 标签: ,

Flex笔记(z7z8)(不定期更新,最后更新090506)

获取焦点
application.focusManager.setFocus(对象);

在AS里用PopUpManager时parent的值
PopUpManager.createPopUp(Application.application as DisplayObject,ClassName,false);

设置input获取焦点后的框框颜色
textInput.setStyle("themeColor", 0x000000);

设置验证控件错误提示Style
.errorTip{
	fontSize:12px;
	border-color:#333333;//注意背景颜色需要设置border-color;
}

立刻创建对象
creationPolicy="all";

本地回放
-use-network=false;

设置RadioButtonGroup.selectedValue为Null时,不是真正设置为null,而是会默认选中第一个值,要设置为null,可使用
RadioButtonGroup.selection=null;

ToolTip显示时间
ToolTipManager.hideDelay = 2500;

绑定事件提示
//MXML下的写法
<mx:Metadata>
	[Event(name="youEventName",type="flash.events.Event")]
</mx:Metadata>

//AS下的写法
package{
	[Event(name="youEventName",type="flash.events.Event")]
	public function ClassName{}
}
//需要注意的是...
//]后面不需要写;号
//事件名和类名请使用双引号标注..
//使用单引号使用编译不会发生问题..
//不过FB3的IDE不会出现提示

TypeError: Error #1034: 强制转换类型失败:
无法将 mx.managers::PopUpManagerImpl@7155ac1 转换为mx.managers.IPopUpManager
//方法一
<mx:Script>
	<![CDATA[
	import mx.managers.DragManager;
	import mx.managers.IPopUpManager;            

	// 避免出现:无法将 mx.managers::PopUpManagerImpl@52a09a1 转换为 mx.managers.IPopUpManager 错误
	private var dragManager:DragManager;
	private var popUpManager:IPopUpManager;
	]]>
</mx:Script>

//方法二
//在ModuleLoader的creationComplete方法中加入如下代码
moduleLoader.applicationDomain = ApplicationDomain.currentDomain;
分类: FLEX , 标签: , ,

TwitterWidget 自定义皮肤

最近Twitter风风火火..
除了有网页~客户端外~
Twitter还提供Widget
供用户显示在自己的MySplace,FaceBook或任意网页~Blog上..
详细查看这http://twitter.com/widgets
查看文章剩余部份
分类: ACTIONSCRIPT , 标签: ,

TextField.replaceHtmlText

在TextField中有一个replaceText的函数..
可以让我们方便的替换/插入字符..
可当我们使用像textField.replaceText(2,2,"<i>html content</i>");时
"<i>html content</i>"并不会当作是htmlText插入...而是当作是纯文本插入..
查看文章剩余部份
分类: ACTIONSCRIPT , 标签: ,

Reflection倒影应用一例

最近在做3DWall,需要倒影的效果..以前是用Mask来做的..效果很低..
网上参考了一下别人的代码..整理了成一个函数..
调用的时候直接使用getReflection(target)返回一个bitmapData对象
也可以使用getReflection(target,100)来指定倒影高度...
查看文章剩余部份
分类: ACTIONSCRIPT , 标签: ,