I combine manipulate and eventhandler, now I can change the controller when working on eventhandler, but how to change the value in eventhandler when I control the manipulate controller?
Chosen = 1;
Location = {{0, 0, 0}, {0, 0, 0}};
Manipulate[
DynamicModule[{pos10 = {{}, {}}, pos11 = {{0, 0, 0}, {0, 0, 0}},
pos12 = {{0, 0, 0}, {0, 0, 0}}, pos20,
pos21 = {{0, 0, 0}, {0, 0, 0}}, pos22 = {{0, 0, 0}, {0, 0, 0}},
posInt}, posInt[] := MousePosition["Graphics3DBoxIntercepts"];
Graphics3D[{Table[With[{i = i}, EventHandler[Dynamic[
If[i == Chosen,
Translate[{Black, Cuboid[]}, pos11[[i]]],
Translate[Cuboid[], {pos11[[i]]}]]
], {"MouseDown" :> {pos10[[i]] = Mean@posInt[],
ChosenItem = Chosen = i,},
"MouseDragged" :> (pos11[[i]] =
pos12[[i]] + Mean@posInt[] - pos10[[i]]),
"MouseUp" :> {(pos12[[i]] = pos11[[i]]),
x = pos12[[Chosen, 1]], y = pos12[[Chosen, 2]],
z = pos12[[Chosen, 3]], Location[[Chosen]] = pos12[[Chosen]]}
}]], {i, 2}]}, PlotRange -> 3]]
,
{{ChosenItem, 1, "Item:"}, {1, 2}, PopupMenu},
Button["Enter", {Chosen = ChosenItem, x = Location[[Chosen, 1]],
y = Location[[Chosen, 2]], z = Location[[Chosen, 3]]}],
{{x, 0, "X"}, -3, 3},
{{y, 0, "Y"}, -3, 3},
{{z, 0, "Z"}, -3, 3},
SaveDefinitions -> True
]

Row[List@Slider[ Dynamic[z, (z = #; pos11[[Chosen, 3]] = z) &], {-3, 3}]]but you have to swap Manipulate with DynamicModule. And since you'd have to changex, y, zcontrollers to explicitly stated Sliders, there is no need to keep Manipulate. – Kuba Nov 26 '14 at 23:54