Hallo
ich habe ein kleine Plugin geschrieben, was beim Start eine XML Datei lädt und aus dieser dann Hotspot-Koordinaten ausliest und diese erstellt. Das funktioniert beim ersten Laden auch einwandfrei, aber ich will natürlich auch beim Panoramawechsel neue Hotspots laden und habe mir gedacht ich nutze das onnewpano Event dazu. Der Aufbau sieht wie folgt aus:
hotspot plugin:
public function registerplugin(krpanointerface:Object, pluginfullpath:String, pluginobject:Object):void {
// get the krpano interface and the plugin object
krpano = krpanointerface;
plugin = pluginobject;
_panoID = krpano.get("_panoID");
plugin.renew= renew;
loadXML(krpano.parsePath(plugin.file),"file");
}
// xml laden per loadXML und dann wird generatePoints aufgerufen
private function generatePoints():void {
var _len:int = _data[_panoID].highlights.length;
krpano.trace(1, 'panoID:' + _panoID + ' hotspot.count = ' + krpano.get("hotspot.count"));
for (var _i:int = 0; _i < _len; ++_i) {
krpano.trace(1, _i + " " + _len);
krpano.call("addhotspot(name" + _i + ");");
var hotspot:Object = krpano.get("hotspot[name" + _i + "]");
hotspot.url = "%SWFPATH%/content/media/hotspot.png";
hotspot.align = "center";
hotspot.ath = _data[_panoID].highlights[_i].x;
hotspot.atv= _data[_panoID].highlights[_i].y;
krpano.trace(1, krpano.get("hotspot.count"));
}
}
private function renew() {
// Punkte updaten
_panoID = krpano.get("_panoID");
generatePoints();
}
Alles anzeigen
Nachdem die XML geladen wurde und generatePoints aufgerufen wird werden auch schön alle Bilder erstellt. Sobald ich aber das event nutze um plugin[hotspot].renew() aufzurufen kommt die Meldung
Der Zugriff auf eine Eigenschaft oder eine Methode eines null-Objektverweises ist nicht möglich.
at Hotspot/generatePoints()
oder wenn ich den krpano Editor benutze:
Der Zugriff auf eine Eigenschaft oder eine Methode eines null-Objektverweises ist nicht möglich.
at editor/set_hotspot_editable()
Der Fehler tritt bei var hotspot:Object = krpano.get("hotspot[name" + _i + "]"); auf, da er das addhotspot anscheinend nicht mehr ausführt. Gibt es dafür einen Grund? hotspot.count ist immer 0 (vorher und nachher [wenn ich nur addhotspots durchlaufen lasse und alles weitere auskommentiere]).
Ich habe auch schon das Event auf oncomplete geändert, aber es kommt der gleiche Fehler.
Hoffe es kann jemand helfen
Danke