我有一个类,我的文档类,称为SilkRoadTweeter.as 我也有一个名为User.as 类在我的User类,我需要调用一个方法叫做随机数() 我已经试过了,如何从当前课程中的其他课程调用方法。 AS3
trace(SilkRoadTweeter(root).nonce());
但我得到的错误,
TypeError: Error #1009: Cannot access a property or method of a null object reference.
我有一个类,我的文档类,称为SilkRoadTweeter.as 我也有一个名为User.as 类在我的User类,我需要调用一个方法叫做随机数() 我已经试过了,如何从当前课程中的其他课程调用方法。 AS3
trace(SilkRoadTweeter(root).nonce());
但我得到的错误,
TypeError: Error #1009: Cannot access a property or method of a null object reference.
在这种情况下, “根” 可能是零。 尝试调试它来检查。
我觉得这很愚蠢,但我实际上并不知道根是什么。 – 2010-11-04 16:44:18
我正在学习大学的行为脚本,并且我使用了类似trace的东西(SilkRoadTweeter(root).nonce()); – 2010-11-04 16:45:09
约旦的答案是最适合你的。静态是要走的路。 – ansiart 2010-11-05 19:59:46
编辑
我其实忘了最重要的一个,你可以派遣en事件!编辑
的 //In the Document class
var user:User = new User();
user.addEventListener("nonce" , nonceEventListener);
//define your listener
private function nonceEventListener(event:Event):void
{
user.result = this.nonce();
}
//In the User class
public function result(value:Number):void
{
//here you deal the generated Number
}
//somewhere in the Class
this.dispatch(new Event("nonce"));
末
你应该通过你SilkRoadTweeter的实例在User类
例如:
//In the Document class
var user:User = new User(this);
//In the User class
var srt:SilkRoadTweeter;
public function User(srt:SilkRoadTweeter)
{
this.srt = srt;
srt.nonce();
}
如果用户类的实例添加为一个孩子SilkRoadTweeter类,你也可以 做到这一点
//In the User class
var srt:SilkRoadTweeter;
public function User()
{
addEventListener(Event.ADDED , addedListener);
}
protected function addedListener(event:Event):void
{
srt = this.parent as SilkRoadTweeter;
srt.nonce();
}
嘿,对不起,我不认为我很清楚。我需要调用nonce()和nonce()在文档类(SilkRoadTweeter.as)中,但我需要从其他类调用它User.as – 2010-11-04 16:36:51
我即将去尝试现在。所有的nonce()都会返回一个生成的数字。有没有办法只是从用户调用nonce()并获取值? – 2010-11-04 16:50:30
是的,用户对象被添加为SilkRoadTweeter的子节点 – 2010-11-04 16:51:47
尝试:
trace(root is SilkRoadTweeter)
我都感觉你需要做的:
trace((root.getChildAt(0) as SilkRoadTweeter).nonce());
trace(root是SilkRoadTweeter);追踪什么? – 2010-11-04 23:51:10
你说的随机数()函数是在SilkRoadTweeter类,你需要从用户调用它类。您必须具有对SilkRoadTweeter的引用才能调用它。错误是说它不知道SilkRoadTweeter是什么。在我看来,使用root获得参考很麻烦,应该避免。我建议在创建它时传递一个对User类的引用。如果这不是一个选项,只要函数不需要访问SilkRoadTweeter的非静态属性,在SilkRoadTweeter类中静态函数nonce()就可以解决您的问题。你说它所做的只是返回一个生成的数字,所以我猜测它不需要访问非静态属性。如果你仍然感到困惑,我可以详细阐述我所说的话。
我将使nonce()成为一个静态函数。但是我还有另一个函数,我想在用户名为signRequest()的SilkRoadTweeter中调用,它在SilkRoadTweeter类中使用了很多不同的变量。那我该怎么做呢? – 2010-11-04 23:44:44
如果你要在两个类之间进行很多函数调用,我建议在创建User类时引用它。在SilkRoadTweeter中创建User类的实例的代码如下所示:var user:User = new User(this);并且User类的构造函数将除了一个SilkRoadTweeter,您可以将其作为私有属性保存并用于进行函数调用。 – Jordan 2010-11-04 23:54:56
你应该添加更多关于你的课程的细节。 – 2010-11-04 16:08:51