[ascoders] Re: SharedObject extends & local vars

  • From: Ralf Siegel <ralf@xxxxxxxxxxx>
  • To: ascoders@xxxxxxxxxxxxx
  • Date: Mon, 23 Feb 2004 22:15:29 +0100

'n abend André

1. Frage:
wie sieht das aus, wenn ich eine Klasse haben möchte, die gleichzeitig alle
Methoden und Eigenschaften des SharedObjects erben soll ? Das SO wird ja
nicht über einen Konstruktor über instanziert, sonder per getRemote,
getLocal.
"class net.LiveArea extends SharedObject" funktioniert insofern, dass ich
die Methoden ohne Fehlermeldung aufrufen kann, aber passieren tut nichts.

Der Grund wird vermutlich sein, dass getLocal() immer ein Objekt vom Typ "SharedObject" zurückgibt, du aber die Variable auf den Typ "LiveArea" einstellst?!


Dann meckert der Compiler nicht, weil er erkennt, dass "LiveArea" von "SharedObject" abgeleitet ist, zur Laufzeit verweigert der Interpreter aber dann stilschweigend die Annahme. Die Lösung liegt darin, den richtigen Typ "SharedObject" zu verwenden:

______________________________________________________

class net.LiveArea extends SharedObject{

}
______________________________________________________

import net.LiveArea;

var liar:SharedObject = LiveArea.getLocal("cookie");
trace("liar=" + liar);
var shob:SharedObject = SharedObject.getLocal("cookie");
trace("shob=" + shob);

______________________________________________________

Ausgabe:
------------------------------------------------------
liar=[object Object]
shob=[object Object]
______________________________________________________



Und nun dasselbe mit dem Subtyp "LiveArea" - funktioniert nicht:

______________________________________________________

import net.LiveArea;

var liar:LiveArea = LiveArea.getLocal("cookie");
trace("liar=" + liar);
var shob:SharedObject = SharedObject.getLocal("cookie");
trace("shob=" + shob);

______________________________________________________

Ausgabe:
------------------------------------------------------
liar=undefined
shob=[object Object]
______________________________________________________

Preisfrage: Wie biege ich das SharedObject auf LiveArea um ... ;o)

2. Frage:
Mit "var name: Class" kennzeichne ich in AS2 meine Variablen. Jetzt habe ich
im ersten Frame eine main() Funktion in der ich ein Objekt von einer Klasse
ableite. Problematisch, weil das Objekt nur lokal in meiner Funktion ist.
Jetzt bin ich etwas verwirrt über das Schlüsselwort "var" in AS2. Wie
bekomme ich den meine Typisierung zum Objekt und ein persistentes Objekt ?

Verstehe leider nicht, was du mit dem Objekt genau machst - hast du 'n Beispiel?


ralf ...


------------------------------------------------------------- Ralf Siegel - Freelance Developer Recommended Listening: Isobell Campell - Amorino (Snowstorm) http://www.isobelcampbell.com -------------------------------------------------------------

------------------------------------------------------
Archiv   : //www.freelists.org/archives/ascoders/
Optionen : //www.freelists.org/list/ascoders
------------------------------------------------------

Other related posts: