Code
trace("1: startX = ",get(hotspot[startX])); => null
set(hotspot[startX].visible, true);
trace("2: startX = ",get(hotspot[startX])); => [object][object]
Apparently if you try to set an attribute of a non-existent object (hotspot), rather than failing the hotspot gets created with default values. I understand that you can create a simple variable (which is an object) by setting its value without declaring the variable first. But is this really intended behavior for hotspots etc?