Хорошо, я пытаюсь установить переменную с помощью вызова метода javascript. Однако это не работает. Я погуглил и закончил ip, возвращаясь и пробуя swLiveConnect, но это устарело, и оказалось, что мой путь - теперь способ сделать это. Итак, вот моя функция JavaScript и ActionScript. Я понятия не имею, что происходит, я кланяюсь перед более опытными сценаристами.
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();}
Я вполне уверен, что это как-то связано с возвратом, но я не уверен. На данный момент я попытался отследить, какой адрес передается в функцию, это правильно. Я проследил, какое расстояние установлено до и после вызова. До, NaN; после 0. От Firebug я получаю правильный номер. Я просто не знаю.