PDA

Просмотр полной версии : Присвоить значения переменных при загрузке


KeTal
13.11.2005, 04:44
Здравствуйте!
Очень плохо знаю основы ActionScript, по-этому возникают такие вопросы :rolleyes:

Надо, чтобы сразу при загрузке swfки выполнился этот код:
loadVariables("51.txt", "_root");
toy51._x = _root.toy51_x;
toy51._y = _root.toy51_y;
он должен присвоить объекту X и Y. Если создать кнопку, при нажатии на которую выполняются эти действия, все работает, но никак не могу сделать, чтобы это срабатывало автоматом.

Пробовал
_root.onEnterFrame=function() {
loadVariables("51.txt", "_root");
toy51._x = _root.toy51_x;
toy51._y = _root.toy51_y;
}

но тогда потом нельзя двигать объект мыхой, т.к. постоянно присваивается X и Y.

Пробовал:

var t_loaded=false;
_root.onEnterFrame=function() {
if (!t_loaded) {
loadVariables("51.txt", "_root");
toy51._x = _root.toy51_x;
toy51._y = _root.toy51_y;
t_loaded=true;
}
}

Но тогда почему-то вообще ничего не происходит (объект остается на том месте, на котором был изначально). Помогите, пожалуйста. :rolleyes:

iNils
13.11.2005, 04:58
Нужно использовать обработчик события onData

KeTal
13.11.2005, 05:09
Спасибо! Все получилось.

Nirth
13.11.2005, 05:11
в текстовике пишем

_x=50&_y=100


в флэшке пишем


var data_lv:LoadVars = new LoadVars ();
data_lv.load("data.txt");
data_lv.onLoad = function (success:Boolean):Void {
if(success) {
_root.rect._x = parseInt(this._x);
_root.rect._y = parseInt(this._y);
}
}

KeTal
13.11.2005, 17:48
Так, к сожалению, не работает, а fla из архива не открывается (Unexpected file format). Сделал след. образом:

_root.onData = function() {
loadVariables("51.txt", "_root");
toy51._x = _root.toy51_x;
toy51._y = _root.toy51_y;
};

Локально под аппачем все работает, как надо, но когда заливаю на сервер, флешка держит постоянное соединение (я так понял, она тянет данные файла не прерывно) и шарик не подвигать мыхой. Нужно как-то сделать, чтобы данные из файла грузились только единажды, а шарик остался там, где ему скажет файл.

Пробовал:

var ld=false;
_root.onData = function() {
if (!ld) {
loadVariables("51.txt", "_root");
toy51._x = _root.toy51_x;
toy51._y = _root.toy51_y;
ld=true;
}};

в этом случае шарик снова сидит на изначальном месте и не принимает координаты из файла (или принимает, на один фрейм, так что это не заметно, а потом возвращается обратно).

Nirth
13.11.2005, 17:49
у тебя какая версия флэша?

KeTal
13.11.2005, 17:50
Flash MX 6.0

Nirth
13.11.2005, 17:54
тогда код должен выглядеть так

var data_lv = new LoadVars ();
data_lv.load("data.txt");
data_lv.onLoad = function (success) {
if(success) {
_root.rect._x = parseInt(this._x);
_root.rect._y = parseInt(this._y);
}
}


И не забудь текстовый файл сохранить в кодировке UTF - 8

KeTal
13.11.2005, 18:01
Nirth, спасибо! Теперь работает, как надо!