晕了晕了

      Flash进修 2007-3-23 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只在编译时期检查 私有公有
运行时期就不区分了.... -_-!!!...........

标签集:TAGS:flash
回复Comments() 点击Count()

回复Comments

{commentauthor}
{commentauthor}
{commenttime}
{commentnum}
{commentcontent}
作者:
{commentrecontent}