вам не нужно получать экземпляр Fx.tween и применять start, используйте прототип элемента .fade, который делает это за вас.
единственное, что вам нужно сделать, это УСТАНОВИТЬ onComplete (так как это не может быть асинхронно), чтобы заменить контент, удалить oncomplete и затем вернуться обратно.
проверьте это jsfiddle для демонстрации:
http://www.jsfiddle.net/dimitar/NF2jz/291/
new Request.HTML({
url: '/echo/html/',
data: {
html: "loaded content is now in",
delay: 3
},
method: 'post',
onRequest: function() {
document.id("target").set("html", "Loading content...");
},
onComplete: function() {
var response = this.response.text;
document.id("target").set("tween", {
onComplete: function() {
this.element.set("html", response);
this.removeEvents("complete");
this.element.fade(1);
},
duration: 1000
}).fade(0);
}
}).send();
это для целей тестирования на jsfiddle (вы отправляете данные вместе с запросом для имитации ответа и указываете количество секунд для задержки ответа от сервера)
еще один способ справиться с этим - цепочка на экземпляре fx:
onComplete: function() {
this.element.set("html", response);
this.removeEvents("complete");
},
link: "chain"
}).fade(0).fade(1);
веселись