eval("cat_MC"+i).onPress =_root.funzione (i)

questo nn va messo all'interno di funzione(x)

ma all'interno della funzione che "costruisce" il menù

.. per internderci:
codice:
for (i=1; i<numero; i++) {
  newMc = "cat_Mc" + i
  duplicateMovieClip ("_root.drag_menu.menu.cat_MC", NewMc, i);
  NewMc.id = i
  NewMc.onPress = function () {
    _root.funzione(this.id)
  }
}
l'ho scritto a occhio cmq dovrebbe funzionare