不伦不类的Action Script 3.0

因工作需要,有可能要接手以前一位Flash程序员同事的代码,今天看了下Action Script 3.0,发现这玩意儿真的有点那个啥...

打开Flash CS 4,新建一个Action Script3.0文件,在第一帧写几行代码:

代码一:

var o = "123";
trace(typeof(o)) //输出string
o = 123;
trace(typeof(o)) //输出number

好象还不错,有点c#3.0中的var的味道,能根据赋值不同,自动推断变量类型.

再写几行过过瘾:

代码二:

var Citys:Array = ["上海","北京","武汉","广州","深圳"]
for(var i in Citys){
	trace("i=" + i + ",类型:" + typeof(i) + ",元素:" + Citys[i])	
}

输出: i=0,类型:number,元素:上海 i=1,类型:number,元素:北京 i=2,类型:number,元素:武汉 i=3,类型:number,元素:广州 i=4,类型:number,元素:深圳

貌似也象那么回事儿,跟c#中的也差不多,i做为数组的数字下标进行元素访问(比如:Citys[1])

改成(即把循环变量的类型明确定义成String):

代码三:

for(var j:String in Citys){  trace("j=" + j + ",类型:" + typeof(j) + ",元素:" + Citys[j])  }

输出: j=0,类型:string,元素:上海 j=1,类型:string,元素:北京 j=2,类型:string,元素:武汉 j=3,类型:string,元素:广州 j=4,类型:string,元素:深圳

这个看上去就特别扭了,你说要是解释成索引器重载吧(即Citys["1"]),那j输出的值貌似是"1"更合理,而输出结果是1(不加引号,误导初学者)

而根据第二段的测试结果,循环变量默认就是number,那我们改成这样试下:

for(var k:Number in Citys){  trace("类型:" + typeof(k) + ",元素:" + Citys[k])  }

讽刺的是居然编译不过了!(明明在代码二中系统自动推断出是number型,现在我顺着它的系统定义成Number型却不能编译)

也许是我道行太浅,理解不了Adobe的玄机。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏编程

Python读书笔记9

我们针对列表需要进行整体的排序,今天就和大家聊一聊列表的排序应用。 一、永久性排序 什么是永久性排序呢,之前很多方法比如针对字符串的title方法,针对列表的重...

1838
来自专栏PHP实战技术

你真的懂let和const吗?

块级作用域 在ES6之前我们脑海里应该只存在全局作用域和函数级作用域,没有块级作用域。那么为什么要引入块级作用域呢? 避免外层变量被覆盖 var str = "...

3956
来自专栏前端桃园

ES6之块级作用域

1514
来自专栏magicsoar

关于字符编码的那些事

一、编码是什么 编码为了某种目的把信息从一种形式集合转换为另一种形式集合的过程,古时的鸣金收兵,从某种意义上讲也是一种编码,将帅发出了退兵的命令,为了让更多的人...

1946
来自专栏IT大咖说

程序员必知的 Python 陷阱与缺陷列表

阅读字数:3754 | 10分钟阅读 我个人对陷阱的定义是这样的:代码看起来可以工作,但不是以你“想当然“”的方式。如果一段代码直接出错,抛出了异常,我不认为这...

3567
来自专栏日常学python

python中一切皆对象

众所周知python是一款面向对象语言,在python语言中,可以说python的一切皆对象是不会错的。如果你学过java的话,你也会知道java也是一款面向对...

1000
来自专栏Jed的技术阶梯

Java设计模式之多例模式

在介绍单例模式的时候,我们举的例子是皇帝,同一时期只能有一个皇帝,详情请看:Java设计模式之单例模式,但在个别情况下,同一时期还有两位皇帝!这种情况就出现在明...

1001
来自专栏阿凯的Excel

Python读书笔记9(列表排序与复制)

我们针对列表需要进行整体的排序,今天就和大家聊一聊列表的排序应用。 一、永久性排序 什么是永久性排序呢,之前很多方法比如针对字符串的title方法,针对列表的...

2787
来自专栏转载gongluck的CSDN博客

python笔记:#009#判断语句

判断(if)语句 目标 开发中的应用场景 if 语句体验 if 语句进阶 综合应用 01. 开发中的应用场景 生活中的判断几乎是无所不在的,我们每天都在做各种各...

4154
来自专栏java一日一条

java中i=i++问题分析

程序的执行顺序是这样的:因为++在后面,所以先使用i,“使用”的含义就是i++这个表达式的值是0,但是并没有做赋值操作,它在整个语句的最后才做赋值,也就是说在做...

573

扫码关注云+社区

领取腾讯云代金券