Suppose there is an object A, which is
the character and an object B, which
is the ground
Suppose the character can only walk
when he touches the ground.
Assuming your object A is b2Body called objectA and
objectB is another b2Body called objectB and you world is called m_world. If objectB
is the ground I guess it has a density of 0 which makes it static.
If you want to check if objectA is above objectB you have two options, either through the bodies themselves which means using box2d unit measurements ( 1 meter = 30 pixels ) ,
either using the reference to your custom clips set through the userData property.
The advantage of using the second, I guess, is that you will be using the regular pixel units, bare in mind that you have your registration point in the center not at 0,0.
So,in your update loop( where you call m_world.Step ) you would have something like:
if((objectA.m_userData.y + objectA.m_userData.height*.5) < (objectB.m_userData.y-objectB.m_userData.height*.5)) trace('objectA is above ground');
else trace('objectB is on the ground');
Just read you comment and updated again.
I started writing a jsfl command for flash that gets the x,y,width, height from elements on stage and generated the box2d code. I used it to make this simple game:
http://www.disturbmedia.com/games/breakfast
It seems I don't need to reinvent the wheel as someone else already made something pretty consistent. Just got back from LFPUG where Carlos Ulloa talked a bit about box2d as well and he pointed to this thing:
http://www.sideroller.com/wck/
It seems to generate coordinate arrays for more complex shape definitions which is what you need. In a way this isn't the complete answer to your specific question, but it's a step forwared.
From your description, the game sounds really interesting. Keep us updated :)