我是AS3的新手。我有2個文件:Var錯誤地重置自己在AS3
main.as:
package
{
import flash.display.*;
public class Main extends Sprite
{
public function Main()
{
var f0:Flower = new Flower("rose");
var f1:Flower = new Flower("daisy");
}
}
}
Flower.as:
package
{
public class Flower
{
public var namex:String;
public function Flower(name:String)
{
trace("Previous public var name: " + namex);
namex = name;
}
}
}
基本上,我得到了我的輸出2個零點。第一個我明白爲什麼;當我第一次觸發
var f1:Flower = new Flower("rose");
它調用花的函數,並要求一個尚未設置的var的跟蹤,所以我們得到一個null。跟蹤後,它設置變量與
namex = name;
這是值字符串上升。但是當我觸發花雛菊時,我認爲(在我看來)接收到這個信息:「以前的公開變種:玫瑰花」,因爲當我們觸發玫瑰花時,我們告訴他將公共變種namex設置爲我們第一個的值主要提供(玫瑰)。 那麼,爲什麼我會得到2個空值而不是1個空值,而不應該是另一個「以前的公共變量:玫瑰」;
另一件事,我能得到什麼
var f1:Flower = new Flower("rose");
不會完全解釋清楚?它創建一個對象嗎?一個實例?或者它只是爲flower.as中的函數提供一個值(玫瑰)?
閱讀AS3 OOP教程。這是基本的面向對象的東西。只有靜態變量在類實例之間共享。你的namex變量沒有被設置爲static ...所以對於Flower類的每個實例它都是不同的。 – Iansen
這些實例是否曾經在main.as中觸發過的地方保存過?什麼是實例?價值「上漲」?正如我所說,我是一名初學者;這對我來說不是基本的。順便說一句我把公共變量設置爲「公共靜態變量」,現在我得到一個錯誤:null。 – RunningFromShia