PDA

Просмотр полной версии : обновление координат клипа


stepa323
06.01.2011, 15:58
Подскажите как обновить координаты клипа, первой функцией такой же я клипы загружаю через хмл, а вот это мне нужно обновить их координаты, но не вынося по новой.....
_global.update = function() {
i = 1;
a = 0;
b = 1;
c = 2;
d = 3;
f = 1;
arr = [];
j = myXML.childNodes.length;
j = parseInt(j);
while (i<j) {
_root.login = myXML.childNodes[a].firstChild;
_root.osx = myXML.childNodes[b].firstChild;
_root.osy = myXML.childNodes[c].firstChild;
_root.online = myXML.childNodes[d].firstChild;
_root.osx = parseInt(_root.osx);
_root.osy = parseInt(_root.osy);
if (_root.login == undefined) {
break;
}
arr[f] = _root.attachMovie("skelet", _root.login, i);
arr[f]._name._x = _root.osx;
arr[f]._name._y = _root.osy;
if (arr[f]._name == _root.user) {
player = arr[f];
}
f += 1;
i += 1;
a = d+1;
b = a+1;
c = b+1;
d = c+1;
myXML.load("http://kahoxa.ru/xml.php");
}

};

dark256
06.01.2011, 16:01
if ( arr[f] == undefined )
{
arr[f] = _root.attachMovie("skelet", _root.login, i);
}
else
{
клип уже есть, меняем ему координаты
}

stepa323
06.01.2011, 16:08
координаты таким образом поменять?
arr[f]._x = _root.osx;
arr[f]._y = _root.osy;

dark256
06.01.2011, 16:11
ага. ибо клип уже есть и его название внесено в массив.
только я бы писал все-таки так:

arr[f] = _root.attachMovie("skelet", _root.login+некий_индекс, i);

Чтобы имена клипов были уникальными. А то у вас в классе будет 100 Вась.
- "Вася, к доске!"
Люди ломанутся все, а во флэше пойдет только один - но только последний пришедший в школу с таким именем :)

stepa323
06.01.2011, 16:12
вообще перемещать перестал( постоянно теперь возвращает на нулевые координаты всех(

Добавлено через 1 минуту
вот весь код:
stop();
myXML = new XML();
myXML.load("http://kahoxa.ru/xml.php");
_global.func = function() {
i = 1;
a = 0;
b = 1;
c = 2;
d = 3;
f = 1;
arr = [];
j = myXML.childNodes.length;
j = parseInt(j);
while (i<j) {
_root.login = myXML.childNodes[a].firstChild;
_root.osx = myXML.childNodes[b].firstChild;
_root.osy = myXML.childNodes[c].firstChild;
_root.online = myXML.childNodes[d].firstChild;
_root.osx = parseInt(_root.osx);
_root.osy = parseInt(_root.osy);
if (_root.login == undefined) {
break;
}
arr[f] = _root.attachMovie("skelet", _root.login, i);
arr[f]._x = _root.osx;
arr[f]._y = _root.osy;
if (arr[f]._name == _root.user) {
player = arr[f];
}
f += 1;
i += 1;
a = d+1;
b = a+1;
c = b+1;
d = c+1;
myXML.load("http://kahoxa.ru/xml.php");
}
clearInterval(timer);
};
_global.go = function() {
myXML1 = new XML();
myXML1.load("http://kahoxa.ru/xml.php?osx="+player._x+"&osy="+player._y+"&user="+_root.user, "GET");
};
_global.update = function() {
i = 1;
a = 0;
b = 1;
c = 2;
d = 3;
f = 1;
arr = [];
j = myXML.childNodes.length;
j = parseInt(j);
while (i<j) {
_root.login = myXML.childNodes[a].firstChild;
_root.osx = myXML.childNodes[b].firstChild;
_root.osy = myXML.childNodes[c].firstChild;
_root.online = myXML.childNodes[d].firstChild;
_root.osx = parseInt(_root.osx);
_root.osy = parseInt(_root.osy);
if ( arr[f] == undefined )
{
arr[f] = _root.attachMovie("skelet", _root.login, i);
}
else
{
arr[f]._x = _root.osx;
arr[f]._y = _root.osy;
}
if (arr[f]._name == _root.user) {
player = arr[f];
}
f += 1;
i += 1;
a = d+1;
b = a+1;
c = b+1;
d = c+1;
myXML.load("http://kahoxa.ru/xml.php");
}

};

dark256
06.01.2011, 16:24
амм.... у вас вообще все в корне неверно :)))))

Упростим ваш код

myXML = new XML();
myXML.load("http://kahoxa.ru/xml.php");

_global.func = function()

_global.go = function()

_global.update = function()

Как вы думаете - после загрузки ХМЛ - какая функция вызовется?

stepa323
06.01.2011, 16:27
:) у меня функци вон где вызываются:
stop();
myXML = new XML();
myXML.load("http://kahoxa.ru/xml.php");
timer=setInterval(_global.func,1000);
timer1=setInterval(_global.update,1100);
onEnterFrame = function () {

if(Key.isDown(Key.LEFT)){
player._x-=8;
player._xscale=100;
if(player._currentframe==2)player.gotoAndPlay(2);
_global.go();
}
if(Key.isDown(Key.RIGHT)){
player._x+=8;
player._xscale=-100;
if(player._currentframe==2)player.gotoAndPlay(2);
_global.go();
}

};



Добавлено через 1 минуту
а после выноса клипов, там клеар интервал стоит

dark256
06.01.2011, 16:31
Тогда это не "ВЕСЬ КОД".
Функция обработчик данных из ХМЛ-я, срабатывающая раз в секунду? А если ваш ХМЛ считывается дОльше 1 секунды? А если там время ожидания 15 секунд? Ну и так далее. Ичтайте бОльше про класс XML

stepa323
06.01.2011, 16:36
а с этим можно что-нибудь сделать? что бы обновлял, просто почему он к клипу не обращается понять не мог(
здесь:
_global.func = function()

он выкинул всех в массив и по координатам, а в _global.update = function()
он как будто забывает все имена клипов или я не правильно к ним обращаюсь?.....

dark256
06.01.2011, 16:39
у вас ХМЛ еще не получена, а в ы координаты клипам пишете.
вот и все.
читайте про событие .onLoad

stepa323
06.01.2011, 16:58
вот, вроде что то на шаманил, работает, но только под багами( не смотря на то что онлайн только 10-15 человек
stop();
myXML = new XML();
myXML.load("http://kahoxa.ru/xml.php");
myXML.onLoad=_global.func;
myXML2.load("http://kahoxa.ru/xml.php");



onEnterFrame = function () {
if(myXML2.onLoad==true){
_global.update();
}

if(Key.isDown(Key.LEFT)){
player._x-=8;
player._xscale=100;
if(player._currentframe==2)player.gotoAndPlay(2);
_global.go();
}
if(Key.isDown(Key.RIGHT)){
player._x+=8;
player._xscale=-100;
if(player._currentframe==2)player.gotoAndPlay(2);
_global.go();
}

};


поможете исправить??
и кстати ещё маленький вопрос, а в чем флешь время показывает?) 13 цифр просто)

dark256
06.01.2011, 17:02
вот в чем.
http://vkontakte.ru/app1871605

а что за игра-то - куда итти играть-то? где он-лайн болтается ? :)

stepa323
06.01.2011, 17:04
да нет, просто по базе онлайн с форума моего))) это я так просто учусь
вот человечки, зайдите под ником nace ходить в право лево на стрелках)
http://kahoxa.ru/KAHOXA_RPG.html

Добавлено через 5 минут
задержка из за того что хмл медленно грузит?

dark256
06.01.2011, 17:18
посмоотрееел :)))
WEB2.0 - рулит! Уважаю!
В целом - вы как бы даже основ работы с флэшом не знаете. Вам либо документацию читать и туторы, либо, если хотите быстро - то в раздел "Резюме" :)

stepa323
06.01.2011, 17:23
дайте ссылку где там раздел этот......

Добавлено через 1 минуту
а основы я вроде знаю по крайней мере минимум . Мне не важно было как оформит флешку мне главное было загрузить данные)