2
我很难找出AS 3.0中的参考系统。AS 3.0参考问题
这是代码,我有
package rpflash.ui {
import flash.display.Sprite;
import flash.display.MovieClip;
import flash.display.Stage;
import nowplaying;
import flash.text.TextField;
public class RPUserInterface extends Sprite{
var np:nowplaying;
public function RPUserInterface(){
}
public function init(){
var np:nowplaying = new nowplaying();
this.addChild(np)
}
public function updateplayer(xml:XML){
var artist: String = xml.nowplaying.artist.toString();
var title: String = xml.nowplaying.title.toString();
trace("UI:update");
trace(this.np);// this gives me a null reference
}
}
}
(我为了找到问题,但无济于事修剪下来),仍然我无法访问NP!跟踪this.np给我一个空引用。我甚至不试图从一个subling类访问它。 (顺便说一句,我想知道如何做到这一点。)
要进一步扩展,“var”关键字总是在当前作用域中创建一个新变量。在你发布的代码中,你使用“var”来声明你的变量两次 - 第一次,你声明它在任何函数之外,这是声明一个类属性的正确方法。第二次,当你在函数内再次声明它时,你正在创建一个新的变量,该变量的作用域在该函数内。以后尝试引用该变量不起作用,因为它们引用了未初始化的类属性。 – fenomas 2010-04-10 16:36:36