Posted
on February 24, 2009, 16:11,
by stefan,
under
coding.
Finally I managed to reproduce something that have been annoying me for several months while using NetBeans as my primary JavaScript editor:

Filed as issue #159060.
Update: Fixed in trunk and available in 6.7 M2.
Posted
on February 16, 2009, 16:28,
by stefan,
under
coding.
I’m currently working with the Microsoft Virtual Earth SDK and wanted to test if a point is inside a box as where coordinates are specified using latitude and longitude.
It appears there are no built in function the API that does this, so this is what I came up with. Please note the special case where the bounding box overlaps the 180th degree longitude.
/**
* Returns true if point is in rectangle.
*
* @param {VELatLong} point Point to check.
* @param {VELatLongRectangle} rect Bounding box.
*/
function isPointInRect(point, rect) {
return ( (rect.TopLeftLatLong.Longitude <= rect.BottomRightLatLong.Longitude && // longitude
rect.TopLeftLatLong.Longitude <= point.Longitude &&
rect.BottomRightLatLong.Longitude >= point.Longitude)
|| (rect.TopLeftLatLong.Longitude > rect.BottomRightLatLong.Longitude && // longitude crosses 180 degrees
rect.TopLeftLatLong.Longitude >= point.Longitude &&
rect.BottomRightLatLong.Longitude <= point.Longitude) )
&& (rect.TopLeftLatLong.Latitude >= point.Latitude && // latitude
rect.BottomRightLatLong.Latitude <= point.Latitude);
}
This may be used, among many things, to test if a pushpin shape is within the current map view, and if it isn’t the map is panned to make it visible:
var point = shape.GetPoints()[0];
if (!isPointInRect(point, map.GetMapView())) {
map.PanToLatLong(point);
}
Posted
on January 2, 2009, 23:30,
by stefan,
under
coding.
Using the trace() function output is written to the file flashlog.txt if the debug version of Flash Player is used.
Verify that you are running the debug version at this page, if not you may download it here.
Then the Flash Player must be configured to enable logging using the mm.cfg file. It’s location is OS dependent, as well as the (hard-coded) location of the resulting flashlog.txt file. Location and possible settings of the mm.cfg file are documented here.
Using Mac OSX or Linux a convenient way to view the log file is to use tail -f from the command line, e.g.:
tail -f /Users/<user>/Library/Preferences/Macromedia/Flash Player/Logs/flashlog.txt
Posted
on December 15, 2008, 22:49,
by stefan,
under
coding.
I had some free time and wanted to bring back some early Amiga memories using JavaScript. Using canvas this is what I ended up with:

Click for demo.
I’m pleased the way the lightning and individual rotation of the bars themselves turned out to be. What do you think?
Posted
on December 15, 2008, 17:02,
by stefan,
under
coding.
When using ExplorerCanvas (excanvas) to emulate the Canvas object in Internet Explorer it might be a good idea to check that the excanvas lib really is loaded before trying to create a context object. If not, an informative error message may be displayed instead of some cryptic “object doesn’t support this property”.
Here is a way to check if excanvas.js has been loaded.
if (typeof window.CanvasRenderingContext2D == 'undefined' &&
typeof G_vmlCanvasManager == 'undefined') {
alert("ExCanvas not loaded!");
}