Currently, I am facing an issue while setting a variable through a javascript method call. Despite my attempts, it seems like the traditional approach using swLiveConnect is no longer effective and now my way is considered the correct way. Below are snippets of my javascript function and actionscript code. As someone new to actionscript, I find myself confused by this situation and seek guidance from more experienced individuals in the field.
Actionscript
//==========================================================
function decide_proposal(e:Event):void {
//==========================================================
var address1:String = form1.project_address.text + ", " + form1.project_city.text + ", " + form1.project_state.text + ", " + form1.project_zip.text;
var distance:Number = ExternalInterface.call("showLocation(" + address1 + ")");
var commit:String = e.currentTarget.name;
if (form1.stories.value >= 2.5 || form1.wood_no.selected || form1.framed_sqft.value >= 5000 || form1.roof_slope.value < 3 || form1.civil.selected || form1.cmt.selected || form1.commercial.selected || form1.c.selected || distance >= 180 || form1.bore_holes1.value >= 4) {
send_proposal(e);
} else if (commit == "quote") {
perform_calculations(distance);
} else {
send_proposal(e);
}
}
Javascript
var geocoder;
var location1;
function initialize() {
geocoder = new GClientGeocoder();
}
function showLocation(address) {
var locations = 0;
geocoder.getLocations(address, function (response) {
if (!response || response.Status.code != 200)
{
alert("There was an error");
}
else
{
location1 = {lat: response.Placemark[0].Point.coordinates[1], lon: response.Placemark[0].Point.coordinates[0]};
}
});
var glatlng1 = new GLatLng(location1.lat, location1.lon);
var brenham = new GLatLng(30.152289,-96.384881);
var college_station = new GLatLng(30.610584,-96.306002);
var miledistance1 = glatlng1.distanceFrom(brenham);
var miledistance2 = glatlng1.distanceFrom(college_station);
if (miledistance1 <= miledistance2) {
locations = (miledistance1 * .000621371192);
} else {
locations = (miledistance2 * .000621371192);
}
return locations;
}
window.onload=function() {initialize();}
I have a strong feeling that the issue lies with the 'return' statement, however, I am unsure. I have double-checked the address being passed to the function and it appears to be correct. Upon tracing the value of distance before and after the call, I noticed it changes from NaN to 0. Despite Firebug showing the correct number, I remain puzzled.