все гениальное просто, обратное неверно

)
– ищешь индексОфом свою строку. (получаешь первый ее индекс)
– берешь сабстринг от нуля до этого индекса
– берешь ластИндексОф(chr(13)) от полученного сабстринга
– берешь сабстр от полученого в предыдущем пункте индекса
– с помощью авторесайзового поля без вордврапа определяешь ширину полученного поля.
– теперь находишь остаток от деления на ширину исходного поля
––– это и будет твое смещение !..
если кодом, то:
strt = MainString.indexOf("=)", current_index);
victim = MainString.substring(0, strt);
victim = victim.substr(victim.lastIndexOf(chr(13))+1);
// делаем тестовое поле
this.createTextField("tst", 1, 0, -100, 0, 0);
tst.autoSize=true, tst.type="dynamic", tst.variable="test";
noMargins = new TextFormat();
noMargins.leftMargin=0, noMargins.rightMargin=0;
tst.setTextFormat(noMargins);
// поле готово
test = victim;
OFFSET = tst.textWidth - int(tst.textWidth/MainTextfield._width)*MainTextfield._width;

что-то громоздко как-то... но должно работать
