Store the position of the top left square of your item in var position:Array=[x, y]
Then add to each object an array of couples of ints representing the occupied coordinates of the grid, relative to the position of the top left square.
For example, a 1x1 object will have var size:Array = [[0,0]]
A 1x3 object (1 square wide and 4 squares tall) will have var size:Array = [[0,0], [0,1], [0,2]]
An object shaped like the T piece in Tetris will have var size:Array = [[0,0], [1,0], [1,1], [1,2], [2,1]]
Then if you need to check wether a certain position in the grid is free, say [8,2] (the position corresponding to the piece of meat in your picture) you can use a method like
function checkFree (x:int, y:int):Boolean {
for each (var item:Item in inventory){
for each (var square:Array in item.size){
if (item.position[0]+square[0]==x && item.position[1]+square[1]==y) retrurn false //position is occupied
}
} return true
}
Then, to see if an object will fit in a particular position:
checkFit (item:Item, x:int, y:int):Boolean{
for each (var square:Array in item.size){
if (!checkFree(x+square[0], y+square[0])) return false
} retrun true
}
I used this in my tetris game, I think it will do for your inventory too :)