JavaScript reference error can't find variable plus closure blues -


just in general i'm getting errors this. major 1 in safari , android browser error

javascript reference error can't find variable

the variable in question b2aabb.

here code var worldaabb = new b2aabb();
working box2d javascript (the pixel lab variant) google closure. if can give closure dependencies , requires once on appreciate it.

<html> <title>tune tunnels alpha</title> <head> <!--=============================--> <!-- copy part app. --> <!-- start       --> <!--=============================-->  <!-- libs --> <!--[if ie]><script type="text/javascript" src="lib/excanvas.js"></script><![endif]--> <script src="prototype.js"></script> <!-- <script src="raphael.js"></script> --> <script src="closure-library/closure/goog/base.js"></script>  <!-- box2djs --> <script> goog.adddependency('../common/b2settings.js', ['box2d.settings'], []); goog.adddependency('../common/math/b2vec2.js', ['box2d.vec2'], []); goog.adddependency('../common/math/b2mat22.js', ['box2d.mat22'], []); goog.adddependency('../collision/b2proxy.js', ['box2d.proxy'], []); goog.adddependency('../collision/clipvertex.js', ['box2d.clipvertex'], []); goog.adddependency('../common/math/b2math.js', ['box2d.math'], []); goog.adddependency('../collision/b2aabb.js', ['box2d.aabb'], []); goog.adddependency('../collision/b2bound.js', ['box2d.bound'], []); goog.adddependency('../collision/shapes/b2shapedef.js', ['box2d.shapedef'], []); goog.adddependency('../collision/b2boundvalues.js', ['box2d.boundvalues'], []); goog.adddependency('../collision/b2pair.js', ['box2d.pair'], []); goog.adddependency('../collision/b2paircallback.js', ['box2d.callback'], []); goog.adddependency('../collision/b2bufferedpair.js', ['box2d.bufferedpair'], []); goog.adddependency('../collision/b2pairmanager.js', ['box2d.pairmanager'], []); goog.adddependency('../collision/b2broadphase.js', ['box2d.broadphase'], []); goog.adddependency('../collision/b2collision.js', ['box2d.collision'], []); goog.adddependency('../collision/features.js', ['box2d.features'], []); goog.adddependency('../collision/b2contactid.js', ['box2d.contactid'], []); goog.adddependency('../collision/b2contactpoint.js', ['box2d.contactpoint'], []); goog.adddependency('../collision/b2distance.js', ['box2d.distance'], []); goog.adddependency('../collision/b2manifold.js', ['box2d.manifold'], []); goog.adddependency('../collision/b2obb.js', ['box2d.obb'], []); goog.adddependency('../collision/shapes/b2shape.js', ['box2d.shape'], []); goog.adddependency('../collision/shapes/b2boxdef.js', ['box2d.boxdef'], []); goog.adddependency('../collision/shapes/b2circledef.js', ['box2d.circledef'], []); goog.adddependency('../collision/shapes/b2circleshape.js', ['box2d.circleshape'], []); goog.adddependency('../collision/shapes/b2massdata.js', ['box2d.massdata'], []); goog.adddependency('../collision/shapes/b2polydef.js', ['box2d.polydef'], []); goog.adddependency('../collision/shapes/b2polyshape.js', ['box2d.polyshape'], []); goog.adddependency('../dynamics/b2body.js', ['box2d.body'], []); goog.adddependency('../dynamics/b2bodydef.js', ['box2d.bodydef'], []); goog.adddependency('../dynamics/b2collisionfilter.js', ['box2d.collisionfilter'], []); goog.adddependency('../dynamics/b2island.js', ['box2d.island'], []); goog.adddependency('../dynamics/b2timestep.js', ['box2d.timestep'], []); goog.adddependency('../dynamics/contacts/b2contactnode.js', ['box2d.contactnode'], []); goog.adddependency('../dynamics/contacts/b2contact.js', ['box2d.contact'], []); goog.adddependency('../dynamics/contacts/b2contactconstraint.js', ['box2d.contactconstraint'], []); goog.adddependency('../dynamics/contacts/b2contactconstraintpoint.js', ['box2d.contactconstraintpoint'], []); goog.adddependency('../dynamics/contacts/b2contactregister.js', ['box2d.contactregister'], []); goog.adddependency('../dynamics/contacts/b2contactsolver.js', ['box2d.contactsolver'], []); goog.adddependency('../dynamics/contacts/b2circlecontact.js', ['box2d.circlecontact'], []); goog.adddependency('../dynamics/contacts/b2conservative.js', ['box2d.conservative'], []); goog.adddependency('../dynamics/contacts/b2nullcontact.js', ['box2d.nullcontact'], []); goog.adddependency('../dynamics/contacts/b2polyandcirclecontact.js', ['box2d.polyandcirclecontact'], []); goog.adddependency('../dynamics/contacts/b2polycontact.js', ['box2d.polycontact'], []); goog.adddependency('../dynamics/b2contactmanager.js', ['box2d.contactmanager'], []); goog.adddependency('../dynamics/b2world.js', ['box2d.world'], []); goog.adddependency('../dynamics/b2worldlistener.js', ['box2d.worldlistener'], []); goog.adddependency('../dynamics/joints/b2jointnode.js', ['box2d.jointnode'], []); goog.adddependency('../dynamics/joints/b2joint.js', ['box2d.joint'], []); goog.adddependency('../dynamics/joints/b2jointdef.js', ['box2d.jointdef'], []); goog.adddependency('../dynamics/joints/b2distancejoint.js', ['box2d.distancejoint'], []); goog.adddependency('../dynamics/joints/b2distancejointdef.js', ['box2d.distancejointdef'], []); goog.adddependency('../dynamics/joints/b2jacobian.js', ['box2d.jacobian'], []); goog.adddependency('../dynamics/joints/b2gearjoint.js', ['box2d.gearjoint'], []); goog.adddependency('../dynamics/joints/b2gearjointdef.js', ['box2d.gearjointdef'], []); goog.adddependency('../dynamics/joints/b2mousejoint.js', ['box2d.mousejoint'], []); goog.adddependency('../dynamics/joints/b2mousejointdef.js', ['box2d.mousejointdef'], []); goog.adddependency('../dynamics/joints/b2prismaticjoint.js', ['box2d.prismaticjoint'], []); goog.adddependency('../dynamics/joints/b2prismaticjointdef.js', ['box2d.prismaticjointdef'], []); goog.adddependency('../dynamics/joints/b2pulleyjoint.js', ['box2d.pulleyjoint'], []); goog.adddependency('../dynamics/joints/b2pulleyjointdef.js', ['box2d.pulleyjointdef'], []); goog.adddependency('../dynamics/joints/b2revolutejoint.js', ['box2d.revolutejoint'], []); goog.adddependency('../dynamics/joints/b2revolutejointdef.js', ['box2d.revolutejointdef'], []); goog.require('goog.dom'); goog.require('box2d.settings'); goog.require('box2d.vec2'); goog.require('box2d.mat22'); goog.require('box2d.proxy'); goog.require('box2d.clipvertex'); goog.require('box2d.math'); goog.require('box2d.aabb'); goog.require('box2d.bound'); goog.require('box2d.shapedef'); goog.require('box2d.revolutejoint'); goog.require('box2d.world') goog.require('box2d.boundvalues'); goog.require('box2d.pair'); goog.require('box2d.callback'); goog.require('box2d.bufferedpair'); goog.require('box2d.pairmanager'); goog.require('box2d.broadphase'); goog.require('box2d.collision'); goog.require('box2d.features'); goog.require('box2d.contactid'); goog.require('box2d.contactpoint'); goog.require('box2d.distance'); goog.require('box2d.manifold'); goog.require('box2d.obb'); goog.require('box2d.shape'); goog.require('box2d.boxdef'); goog.require('box2d.circledef'); goog.require('box2d.circleshape'); goog.require('box2d.massdata'); goog.require('box2d.polydef'); goog.require('box2d.polyshape'); goog.require('box2d.body'); goog.require('box2d.bodydef'); goog.require('box2d.collisionfilter') goog.require('box2d.island') goog.require('box2d.timestep'); goog.require('box2d.contactnode'); goog.require('box2d.contact'); goog.require('box2d.contactconstraint'); goog.require('box2d.contactconstraintpoint'); goog.require('box2d.contactregister'); goog.require('box2d.contactsolver'); goog.require('box2d.circlecontact'); goog.require('box2d.conservative'); goog.require('box2d.nullcontact'); goog.require('box2d.polyandcirclecontact'); goog.require('box2d.polycontact'); goog.require('box2d.contactmanager'); goog.require('box2d.worldlistener'); goog.require('box2d.jointnode'); goog.require('box2d.joint'); goog.require('box2d.jointdef'); goog.require('box2d.distancejoint'); goog.require('box2d.distancejointdef'); goog.require('box2d.jacobian'); goog.require('box2d.gearjoint'); goog.require('box2d.gearjointdef'); goog.require('box2d.mousejoint'); goog.require('box2d.mousejointdef'); goog.require('box2d.prismaticjoint'); goog.require('box2d.prismaticjointdef'); goog.require('box2d.pulleyjoint'); goog.require('box2d.pulleyjointdef'); goog.require('box2d.revolutejointdef'); </script>         <!--=============================-->         <!-- copy part app. -->         <!-- end     -->         <!--=============================--> <link href="style/box2d.css" rel="stylesheet" type="text/css" /> </head> <body> <script> document.observe("dom:loaded", function() {     var worldaabb = new b2aabb();     worldaabb.minvertex.set(-1000, -1000);     worldaabb.maxvertex.set(1000, 1000);     var gravity = new b2vec2(0, 300);     var dosleep = true;     var world = new b2world(worldaabb, gravity, dosleep);      var circlesd = new b2circledef();     circlesd.density = 1.0;     circlesd.radius = 20;     circlesd.restitution = 1.0;     circlesd.friction = 0;     var circlebd = new b2bodydef();     circlebd.addshape(circlesd);     circlebd.position.set(x,y);     var circlebody = world.createbody(circlebd);      var jointdef = new b2revolutejointdef();     jointdef.anchorpoint.set(250, 200);     jointdef.body1 = world.getgroundbody();     jointdef.body2 = circlebody;     world.createjoint(jointdef);     var timestep = 1.0/60;     var iteration = 1;     world.step(timestep, iteration);     var ctx;     var canvaswidth;      var canvasheight;      function step(cnt) {          world.step(1.0/60, 1);         ctx.clearrect(0, 0, canvaswidth, canvasheight);         drawworld(world, ctx); // see demos/draw_world.js         settimeout('step(' + (cnt || 0) + ')', 10);     }     event.observe(window, 'load', function() {         setupworld(world); //         ctx = $('canvas').getcontext('2d');         var canvaselm = $('canvas');         canvaswidth = parseint(canvaselm.width);         canvasheight = parseint(canvaselm.height);         step();     }); }); </script> <canvas> </canvas> </body> </html> 

i don't know closure/prototype environment, since looks js files might loading asynchronously, possible js files aren't loaded yet before dom:loaded event fires:

document.observe("dom:loaded", function() {     var worldaabb = new b2aabb(); 

the error occurring on first line of function pretty suspicious. there event fires when js files loaded?

so, think need figure out whether timing issue of script loading or whether it's dependency problem , desired scripts never going loaded. can temporarily replacing entire document.observe("dom:loaded", function() { new function tests existence of b2aabb after long timeout:

document.observe("dom:loaded", function() {   settimeout(function() {     if (b2aabb) {       alert("found it");     } else {       alert("still not there");     }   }, 60 * 1000);  // wait 60 seconds } 

if it's still not present after 60 seconds, it's never going available , have dependency issue. if there after 60 seconds, have timing issue.


Comments

Popular posts from this blog

c# - SharpSVN - How to get the previous revision? -

c++ - Is it possible to compile a VST on linux? -

url - Querystring manipulation of email Address in PHP -