Что сказал Кай ...
просто хотел бы добавить к этому то, что, вероятно, вызывает его.
Если вы нажмете на большой палец (фактический большой палец), это будет растровый объект. таким образом, цель не MovieClip. Попробуйте запустить его в режиме отладки, чтобы убедиться, что это так. Вы также можете добавить след flash.utils.getQualifiedClassName(e.target)
, чтобы увидеть, что это такое. Если вы конвертируете несвязанный класс (не являющийся производным от MovieClip или MovieClip классом), вы получите нулевое значение.
Вы можете сделать оператор while, чтобы найти родителя, который является projectThumb, или просто предположить, что это родитель. Еще один способ сделать это - добавить прозрачную кнопку, которая бы покрывала размер projectThumb поверх всего, чтобы вы знали, что вызывает прослушиватель события click
попробовать ...
projectThumb.addEventListener( MouseEvent.MOUSE_DOWN, onThumbPress );
projectThumb.addEventListener( MouseEvent.MOUSE_UP, onThumbRelease );
function onThumbPress( e:MouseEvent ):void
{
var target:MovieClip = findPT(e.target as DisplayObject) as MovieClip;
if(target){
setChildIndex(target, numChildren - 1 );
target.startDrag();
}
}
function onThumbRelease( e:MouseEvent ):void
{
var target:MovieClip = findPT(e.target as DisplayObject) as MovieClip;
if(target){
target.stopDrag();
}
}
function findPT($mc:DisplayObject):DisplayObject{
while (1){
if ($mc is ProjectThumb){ // <- this is to check for the right class
return $mc;
}else if($mc.parent == null){
return null
}else{
$mc = $mc.parent as DisplayObject;
}
}
return null
}