Problem mit public var

SCIPIO-AEMILIANUS

aka Dubdidadu
Ich verwende folgenden Code auf der einen Seite:
Code:
package {
    [...]
    public class Thumbnail extends Sprite {
        [...]
        private var Tim:Timer;
        public var uniqueId:String;
        private var image:Bitmap;
        function Thumbnail(source:String,uniId:String,desc:String):void {
            uniqueId=uniId;[...]
und in der Haupt FLA hab ich folgendes:
Code:
var h:Thumbnail=new Thumbnail("1.jpg","asdfasdf","Ein Bild :-O");
h.addEventListener(MouseEvent.Click, thumbClick);
hold.addChild(h);

//Bishier kein Fehler alles wird rechtens angezeigt und angebracht

function thumbClick(evt:MouseEvent):void {
trace(evt.target.uniqueId);
}
Was eigentlich in dem Fall hier "asdfasdf" zurückgeben sollte. Aber folgendes erscheint in der Konsole:
Error #1069: Eigenschaft uniqueId für flash.display.Sprite nicht gefunden und es ist kein Standardwert vorhanden

Ich kann den Fehler einfach nicht finden. Irgendwelche Vorschläge?
 
Sprites können leider keine eigene Eigenschaften haben.
Du musst deine Klasse von MovieClip erben lassen.
 
Sprites können leider keine eigene Eigenschaften haben.
Du musst deine Klasse von MovieClip erben lassen.


Woher hast du denn diese info, mein Flash kann's auch mit Sprites

Wenn ich eine Klasse von Sprite erben lasse:
PHP:
package {
	import flash.display.Sprite;
	
	public class MyClass extends Sprite {
		
		public var prop:Number = 100;

		public function MyClass() {}	
	}
	
}

und auf die Zeitleiste
PHP:
var s:Sprite = new MyClass()
addChild(s);
s.addEventListener(MouseEvent.CLICK, onClick);

function onClick(e:MouseEvent):void{
	trace(e.target.prop) //100
}

Ich glaube du meinst die dynamische erstellung von eigenschaften wie zb.
PHP:
var mc:MovieClip = new MovieClip();
mc.prop = 100
, ja das geht nur mit MovieClips.
 
Zuletzt bearbeitet:
Ich hatte es bereits gelöst, aber dennoch danke an alle. tobee hat recht, aber auch denniz mit dem extends MovieClip/Sprite. Funktionieren tut es beides bei mir, wenn ich folgendes mache.

Meine Klasse hatte noch eine var hold:Sprite an die ich alle Elemente angehängt hab. Wenn ich nun draufklickte kam besagter Fehler.
Ich hab dann hold:Sprite zu hold:MovieClip gemacht. Nun kam bei der Abfrage von uniqueId immer ein undefined zurück. Wenn ich nun hold.uniqueId=uniId; schreibe wird der richtige Wert zurückgeliefert.

Ich hatte bisher noch nie dieses Problem. Hab aber jetzt einen Weg gefunden das Ganze zu korrigieren.
 

Neue Beiträge

Zurück