Flex中强制类型转换

在Flex中,如果要将String转换成Number,不能用 as Number, 而应该这样写: Number(str)
[quote]
使用 as 操作符有几个好处:

1.它的效果和第一种方法是一样的。
2.如果类型不兼容无法转换,就会返回null,而不是出错。这样你就可以自定义错误的时候该做什么。
3.没有运行时错误(Run Time Error)提示。

不过有些时候我在使用 as 的时候并不能达到强制转换的目的,而使用第一种方法则可以。为什么 as 操作符有时候会不好用呢?这个问题困扰了我很久,知道昨天在MXNA上发现了一篇日志,才恍然大悟:原来在AS3.0类库中最高层类(Top Level classes,所有Top Level classes的列表请看这里)之间进行强制转换时, as 操作符是不起作用的。比如,假如你想要将一个String 类型的字符串 str 转换成 Number 类型的数字 num 时,可能想要这样写:

num = str as Number;

这样写是没有用的,你只能通过第一种方法来达到强制转换的目的:

num = Number(str);

[/quote]
from: [url]http://lixinye0123.iteye.com/blog/318185[/url]
因为好久没写AS了,居然犯了这个错误,还折腾了半天,实在是不应该!

然后关于日期控件(引用一篇文章):
[quote]
今天,鄙人被一个日期控件整了一天,究其原因还是数据库中保存为日期的类型的字段设为了Int(10),导致了越界,结果保存的日期老是1970年1月1日,真是狂汗!!!后来经过细心盘查,终于抓出元凶,吼吼~~
具体方法:
1.日期控件的设置:
<mx:DateField id="ProductMake_txt" yearNavigationEnabled="true"
formatString="YYYY/MM/DD" dayNames="[日,一,二,三,四,五,六]"
monthNames="[一月,二月,三月,四月,五月,六月,七月,八月,九月,十月,十一月,十二月]"/>
2.把DateField中选中的时间转换为毫秒数,复制给Model中SCRQ属性,最后保存到数据库中:
u.SCRQ = ProductMake_txt.selectedDate.getTime();
3.将数据库中保存的毫秒数取出,在转化为用户可以接受的形式让DataGrid显示出来:
private function secondChangeDate(s:Number):String
{
var date:Date = new Date();
date.setTime(s);
var str:String = date.getFullYear() + "/" + (date.getMonth()+1)
+ "/" + date.getDate();
return str;
}
4.考虑到数据库中是double类型,而显示似乎要是String才比较方便,所以给Model增
加一个字段SCRQstr,专门用来给DataGrid显示用.
u.SCRQstr = secondChangeDate(datas[i].SCRQ);
最后,被这个弱智问题烦了一天,有点 XXX,不过没有白忙活,最起码又多写了篇文章,希望对遇到类似问题的
大家有所帮助!鞠躬~

[/quote]
from: [url]http://m.cnblogs.com/41766/1571240.html[/url]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值