Hi Mahmoud,
It would help if you had a scene file. It might be just simple mistake easily fixed. However, if I understood correctly what your case is here is a solution:
FFD spacewarp seems like good choice, but remember, it does not transform node/object, it moves verts.
1. Have mesh, make bones + skin to mesh (head, in this case)
2. Create eye containing FFD WSD object
3. Skin FFD WSD object to same bones as head
4. Move eye into FFD volume, link to FFD spacewarp. Now you are mostly done with eye *mesh*
5. Create box or similar *geometry*, call it "root_attach"
6. Now bind this to FFD. This is important. Since pivot is not moving....
7. Create point, call it "root_point"
8. Attach constrain "root_point" to "root_attach" front facing polygon
9. Create point, call it "lookat"
10. Make "root_point" lookat constrained to "lookat"
11. Finally, orient constrain eye mesh to "root_point"
This way, your "root_attach" + "root_point" simulate moving pivot inside FFD volume, otherwise it will stick to default location. There is no need to link eye ball. It will move inside FFD volume.
Hope this helps, let me know if it works for you!