Isometric depth sorting

I’ve built several games using isometric display math and they’ve worked out well enough, but for a new project I’ve elected to use a method that allows objects to be pushed & raise above the floor. I’m using concepts used in this tutorial:

http://www.kirupa.com/developer/actionscript/isometric_transforms.htm

So far, it’s working really well, but depth-sorting has me at a loss. Using traditional methods like the ones described in this tutorial don’t work for my purposes:

http://www.kirupa.com/developer/isometric/depth_sorting.htm

I’m using a set of functions to convert x,y,z (3d space) to x,y (screen). I’ve come up with a way to assign a depth value to every object and then sort them (rather than swapping directly to that number which limits the depth resolution since Flash supports a finite # of layers). That works OK, but I can’t seem to get it to take an object’s dimensions (a,b,c) into account.

Any ideas? I can post some of the code here, but I fear that it might just confuse the issue.

I think I’ve got it mostly figured out-

depth in Iso is illustrated on the _y position. But just noting the _y of the instance won’t work.

instead, generate 2 numbers based on the object’s min depth & max depth

  • “board” is the container clip & the axes in question are x,y,z where Y denotes up & down

    for (i in board){
    board*.dMin=yFla(board*.x,0,board*.z)
    board*.dMax=yFla((board*.x+board*.a),0,(board*.z+board*.c))
    }

Now all I need to do is use these two numbers to sort the clips- - - ugh.

all the overlap rules:

|—a---| |----b—|
is easy, but this
|--------|—b---|-------a---------------------|
isn’t so obvious since A needs to be below B (a floor, for example).