ho dovuto modificare il codice x altri motivi. il problema cmq persiste. ora la variabile "ordinata" viene presa da un array. e le maschere non centrano piu nulla.
codice:
on(release) {
 if(_root.step >= _root.line) {
  from = 0;
  riga = 0;
  for(i=0; pagg[i]<=par; i++) {
   trace(i);
   if(pagg[i]==par) {
    lung = lemmi[i].length;
    pos = mymc.track.indexOf(lemmi[i]);
    mymc.cippa.setTextFormat(pos,pos+lung,formatoGloss);
    while(pos>singleLineLength[riga]) riga++;
    seltext = mymc.track.substr(from, pos-1);
    ascissa = selbox.textWidth;
    seltext = lemmi[i];
    trace(seltext);
    dimX = selbox.textWidth; 
    dimY = selbox.textHeight;
    ordinata = _root.yRighe[riga];
    riga++;
    mc = "dyn"+i;
    _root.baseButton.duplicateMovieClip(mc,0);
    _root["dyn"+i]._visible = true;
    _root["dyn"+i]._x = ascissa;
    _root["dyn"+i]._y = ordinata;
    _root["dyn"+i]._width = dimX;
    _root["dyn"+i]._height = dimY;
    _root["dyn"+i].onRelease = function() { trace("leggi la def num: " + (i-1)); };
    from = pos - singleLineLength[i];
   }
  }
 }
}
dove sbaglio? mi crea solo il secondo mc su 2.
ah, premetto che i dati vengono percepiti tutti quanti e le variabili che poi vengono usate per le proprietà dell'mc sono tutte definite.

grazie