【学习笔记】一个关于在时间轴上编程的问题

【殿堂之路】P98页

这是一个sampleThis.as的类文件,先上源代码:

 1 package 
 2 {
 3     import flash.display.Sprite;
 4     public class sampleThis extends Sprite
 5     {
 6         private var foo:String = "foo in Class Definition!";
 7         public function sampleThis()
 8         {
 9             testThis();
10         }
11         private function testThis():void
12         {
13             var foo:String = "foo in testThis()!!!!";
14             trace(foo);
15             trace(this.foo);
16         }
17     }
18 }
19 
20 
21 /*输出如下:
22 场景 1, 图层'图层 1', 帧 1,2 行1037: 包不能嵌套。
23 */

可以看到输出的结果是:包不能嵌套。

根据自己的分析和上百度搜索答案之后,得到初步的结论:

在时间轴上编程,是不能够加入包的。也就是说,去掉了package,public,private等一些细节的代码之后,就能得到正确的结果。

修改后的代码如下:

 1 var foo:String = "foo in Class Definition!";
 2 function sampleThis()
 3 {
 4     testThis();
 5 }
 6 function testThis():void
 7 {
 8     var foo:String = "foo in testThis()!!!!";
 9     trace(foo);
10     trace(this.foo);
11 }
12 sampleThis();
13 
14 
15 /*输出如下:
16 foo in testThis()!!!!
17 foo in Class Definition!
18 */

特别说明一下:

1 trace(foo);             //输出的是testThis()的foo,即局部属性
2 trace(this.foo);        //输出的是实例属性foo,这是this关键字的用法之一

我的心得:

不知道这种解决方法是不是最佳方式,等深入学习之后再回来看看有没更好的解决方案。

--------------------------------------------------------------------------------

2012/06/21补充说明:

通过学习,发现我的心得里说的话是欠妥的。

其实,以上说的方法只是针对时间轴上编程来说的。真正解决这个问题的办法是要理解“包与类路径”的关系,也就是说,要明白以 .as 为后缀的类文件和以 .fla 为后缀的Flash文件,它们的调用方法的原理。只有这样,才能真正避免上述出现的问题。

最后的解决方案如下:

 1 //sampleThis.as这个文件的绝对路径是:D:\myClass\sampleThis.as,也就是说,它被保存在D盘的一个名叫myClass的文件夹里
 2 //因此,sampleThis类的包名就是它所在的文件夹的名字--myClass!同理,如果路径是D:\myClass\subMyClass\sampleThis.as
 3 //那么,包名就是myClass.subMyClass
 4 
 5 //类文件的写法!
 6 //myClass是包名!
 7 package myClass
 8 {
 9     import flash.display.Sprite;
10     public class sampleThis extends Sprite
11     {
12         private var foo:String = "foo in Class Definition!";
13         public function sampleThis()
14         {
15             testThis();
16         }
17         private function testThis():void
18         {
19             var foo:String = "foo in testThis()!!!!";
20             trace(foo);
21             trace(this.foo);
22         }
23     }
24 }

这个时候,把test.fla文件放在和文件夹myClass的同一个目录中,也就是说,fla的绝对路径是D:\test.fla,上一张图吧:

且test文件代码改为:

1 //导入包myClass里的sampleThis文件
2 import myClass.sampleThis;
3 
4 //初始化sampleThis类的对象,运行并得到上述的结果
5 var test:sampleThis = new sampleThis();

到此,包和类路径,还有就是在时间轴上的编程的学习,就告一段落咯。哈哈哈。继续努力!

 

转载于:https://www.cnblogs.com/louisluo77/archive/2012/06/20/2556421.html

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值