AS 不行?
fl1429
2009-02-11
我们知道java中singleton类,实例化一个对象,这个对象可以调用singleton类的属性.
但是在actionscript中怎么不行了...还是我哪里搞错了, as类: package model { import flash.events.EventDispatcher; [Bindable] //设置类的绑定 public class ModelLocator { private static var _instance:ModelLocator;//利用了单例模式 public static var username:String; public static var password:String; public static function getInstance():ModelLocator{ if(_instance == null){ _instance = new ModelLocator(); } return _instance; } } } mxml: <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:local="*" > <mx:Style source = "style.css" /> <mx:Script> <![CDATA[ import model.ModelLocator; public var instance:ModelLocator = ModelLocator.getInstance(); internal function doChange():void{ instance.username = "rootUser";//这里为什么不可以这么写! trace("test:"+instance.username); } ]]> </mx:Script> <mx:Button x="348" y="25" label="Button" click="doChange()"/> <local:LoginPanel x="26" y="25"> </local:LoginPanel> </mx:Application> 问题见我上面的文字!..why? |
|
andot
2009-02-11
public static var username:String;
public static var password:String; 这两个是静态的,不属于实例对象,当然也不属于单体对象了。 |
|
fl1429
2009-02-12
instance是ModelLocator类的对象,username和password是ModelLocator的公共属性,instance怎么就不能调用公共属性了?...面向对象语言都是可以的!...郁闷!
|
|
foodyi
2009-02-12
fl1429 写道 instance是ModelLocator类的对象,username和password是ModelLocator的公共属性,instance怎么就不能调用公共属性了?...面向对象语言都是可以的!...郁闷!
usernae和password属于ModelLocator类 不属于instance对象 MolelLocator.username 这样应该可以. |
|
fl1429
2009-02-12
MolelLocator.username 这样当然可以.....
instance.username 对象调用类的属性也不行了? 还是搞不清..等待牛人帮忙! |
|
andot
2009-02-13
你这个直接用静态类就行,没必要搞什么单体,搞单体又不能提高效率。
|
|
superdandy
2009-02-13
我晕了。 Flex中是不允许私有的构造方法的。 即便你用了getInstance()这种看上去好像是单体模式的东西,别人一样可以new 一个ModelLocator的。 得想别的办法,比如说内部类什么的。 总之是没有什么太好地解决办法的。
|
|
flyspider
2009-02-13
ActionScript文档中明确说明了不允许使用实例变量访问类属性,这和java是完全不一样的,java里顶多给你个编译期警告
|
|
zhengshina5
2009-02-13
foodyi 写道 fl1429 写道 instance是ModelLocator类的对象,username和password是ModelLocator的公共属性,instance怎么就不能调用公共属性了?...面向对象语言都是可以的!...郁闷!
usernae和password属于ModelLocator类 不属于instance对象 MolelLocator.username 这样应该可以. 支持 |
|
whaosoft
2009-02-13
支持上面的!~
|
相关讨论
相关资源推荐
- linux停止进程prostop,Linux下停止SendMail进程[Linux基础]
- CentOS7下搭建postfix邮箱服务器并实现extmail的web访问
- linux-网络安全&防火墙
- linux添加 usr bin,Linux基础之/bin、 /sbin、/ usr/bin,、/usr/sbin的用处
- 基于Centos7 minimal 加固
- perl脚本之------向/etc/aliases邮件组添加删除用户
- /etc/postfix下 main.cf 配置文件详解
- LInux下 /bin、/sbin、/usr/sbin、/usr/bin 目录的作用和区别
- /bin,/sbin,/usr/sbin,/usr/bin 目录之简单区别
- linux系统的网络安全跟什么有关,了解网络安全六大风险