2009 年 06 月 25 日 00:23:28 (L4CD.NET) / /
今天又来介绍Loading...(-_-!!!...好像整天都介绍Loading..希望没误导各位...)
首先..由于AS工程没有帧..所以不能用常用的方法来做Loading..
这里介绍的方法使用元标签Frame(应该是元标签吧?还是叫元数据标签)
网上对Frame的介绍是...使用指定的类替换文档类...
并把其它的东西都丢到了该类的第二帧...
概念就不多说了...英文好的可以看看这个文章...http://www.bit-101.com/blog/?p=946
先看看效果..(PS...Load完以后有CD的艳照喔...~~xixi);
查看文章剩余部份
2009 年 06 月 16 日 00:21:15 (L4CD.NET) / /
由于在储存与显示中文字符的时候..
每个中文字符都占用两个英文字符的位置(显示以宋体为准,特殊字符除外)..
所以我们经常在留言~标题~名称等应用上~需要对中文字符长度进行处理并限制...
最近在做一个许愿的项目..也遇到了这样的问题...
以前的方法是侦听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");
}
}
}
2009 年 06 月 01 日 00:08:23 (L4CD.NET) / /
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:关于页面
查看文章剩余部份
2009 年 05 月 21 日 00:05:48 (L4CD.NET) / /
在Flash IDE下..我们直接使用
txt.html = "这里显示一张库里的图片<img src='库id'/>";
即可把库里的图像显示到文本框内
查看文章剩余部份
2009 年 05 月 20 日 17:45:40 (L4CD.NET) / /
使用过flash做音乐播放器的朋友应该知道..
flash只支持mp3格式的音乐文件
PS:
1.当然还有flv和mp4相关的声音格式..今天就不多讨论了..
2.这里说的是纯AS环境..调用JS就不多说了...
不过上周noteflight在google code发布StandingWave(
http://code.google.com/p/standingwave/)
该类库可以让AS3播放wav..由于网上的介绍比较少..今天顺便介绍一下使用方法
查看文章剩余部份
2009 年 05 月 06 日 17:41:32 (L4CD.NET) / /
获取焦点
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
,
标签: FLEX , 笔记 , 经验
2009 年 04 月 27 日 17:19:08 (L4CD.NET) / /
在TextField中有一个replaceText的函数..
可以让我们方便的替换/插入字符..
可当我们使用像textField.replaceText(2,2,"<i>html content</i>");时
"<i>html content</i>"并不会当作是htmlText插入...而是当作是纯文本插入..
查看文章剩余部份
2009 年 04 月 27 日 17:16:45 (L4CD.NET) / /
今天一大早开电脑第一件事..发现Google的logo换了...
而这次比较特别
查看文章剩余部份
2009 年 04 月 26 日 17:14:05 (L4CD.NET) / /
最近在做3DWall,需要倒影的效果..以前是用Mask来做的..效果很低..
网上参考了一下别人的代码..整理了成一个函数..
调用的时候直接使用getReflection(target)返回一个bitmapData对象
也可以使用getReflection(target,100)来指定倒影高度...
查看文章剩余部份