2007/03/23 | 晕了晕了
类别(Flash进修) | 评论(1) | 阅读(29) | 发表于 16:48

class Data {
 private var $ op:String;
 private var $ data:Object;
 function Data() {
  $ op = "x,y,z,a,b,c";
  $ data = new Object();
 }
 function clone() {
  var copy:Data = new Data();
  for (var i in this.$ data) {
   copy.$ data[i] = this.$ data[i];
  }
  return copy; 
 }
}
-----------------------------------发现--------------------------------------------------------------------------
var d:Data = new Data();
trace(d.$ op)   //报错:该成员为私有成员,无法访问

var d = new Data();
trace(d.$ op)  //不报错,d.$ op的内容可以任意读写-_-!!!

var d = new Data();
trace(d instanceof Data)  //返回true -_-!!!

-----------------------------------问题--------------------------------------------------------------------------
clone方法里面 var copy:Data = new Data(); 这句的类型申明和构造函数名可不可以用其他代替?
因为一旦修改了类名,这里也要改,或者有了子类的话clone方法就必须复写,不能直接继承这个clone

-----------------------------------继续测试--------------------------------------------------------------------------
将前面测试发布出的swf文件load到MC里,再trace(MC.d.$ op),又可以访问了.

这下我才想起来在什么地方看到过,讲的是
flash只在编译时期检查 私有公有
运行时期就不区分了.... -_-!!!...........

0

评论Comments