Просмотр полной версии : Как осуществить скрипт
Xarsok X
09.11.2003, 14:03
Помогите плз, как осуществить этот скрипт:
Прочитать Файл("images.ini");
Файл Делим На Строки;
g= Строки Делим На("\t");
for(i=0;i<Строк;i++){
Создаем Клип("images"+i);
Толкаем Туда Картинку g[0];
Ставим _x=g[1];
Ставим _y=g[2];
}
А если не жалко то киньте исходник... :)
Nox Noctis
10.11.2003, 14:06
если ты так хорошо можешь поставить задачу -
то в чем проблема с кодом ? :)
не понимаю, правда :)
loadFile = function (name) {
var ldr = new XML();
ldr.onData = function(txt) {
var heap = txt.split("\r\n");
for (var i = 0; i<heap.length; i++) {
heap[i] = heap[i].split("\t");
var mc = _root.createEmptyMovieClip("images"+i, 1+i);
mc.loadMovie(heap[i][0]);
mc._x = heap[i][1];
mc._y = heap[i][2];
}
};
ldr.load(name);
};
loadFile("images.ini");
Xarsok X
15.11.2003, 12:33
Просто я не знаю как назначить на каждый созданый мувиклип Код:
onPress{
startDrag("");
}
Nox Noctis
15.11.2003, 12:48
mc.onPress = function () { .... }
:)
Xarsok X
15.11.2003, 12:50
Это да но куда ее пихать чтоб она работала....
Nox Noctis
15.11.2003, 12:57
если в функции, которую я написал выше -
то внутри цикла, там же где:
mc.loadMovie(heap[i][0]);
mc._x = heap[i][1];
mc._y = heap[i][2];
добавить:
mc.onPress = function() { startDrag(this); };
mc.onRelease = stopDrag;
Xarsok X
15.11.2003, 13:08
но почему-то не двигаются муви
loadFile = function (name) {
var ldr = new XML();
ldr.onData = function(txt) {
var heap = txt.split("\r\n");
for (var i = 0; i<heap.length; i++) {
heap[i] = heap[i].split("\t");
var mc = _root.bill.createEmptyMovieClip("images"+i, 1+i);
mc.loadMovie(heap[i][0]);
mc._x = heap[i][1];
mc._y = heap[i][2];
mc.onPress = function() { startDrag(this); };
mc.onRelease = stopDrag;
}
};
ldr.load(name);
};
loadFile("images.ini");
Nox Noctis
15.11.2003, 13:37
значит ты не туда и не так эту функцию прилепил.. :)
давай исходник
Xarsok X
15.11.2003, 13:48
http://www.a-dn.ru/test.zip
А можете подробно объяснить разницу между
loadFile = function (name) {}
и
function loadFile (name) {}
Буду очень признателен
Nox Noctis
15.11.2003, 17:43
2masted
> loadFile = function (name) { ... }
создаем безымянную функцию function ( name ) { ... }
и записываем ссылку на нее в переменную loadFile
> function loadFile (name) { ... }
определяем функцию лоадФайл стандартно.
разница тут только в том, что во втором случае этот код с определением функции выполнится в любом случае ДО всего остального кода, написанного в данном кадре/контейнере.
то есть даже если написать определение в конце кода, оно автоматически выполнится вначале.
2Xarsok X
ууу... я тут лажанулся слегка, не обращайте внимания... :)
забыл что нельзя обращаться к клипу пока туда что-то грузится через лоадМуви..
вот посложнее, но так будет правильно:
loadFile = function (name) {
var ldr = new XML();
loading = [];
heap = {};
ldr.onData = function(txt) {
var img = txt.split("\r\n");
for (var i = 0; i<img.length; i++) {
var mc = _root.createEmptyMovieClip("images"+i, 1+i);
trace(mc);
heap[mc] = img[i].split("\t");
loading.push(mc);
mc.loadMovie(heap[mc][0]);
_root.onEnterFrame = function() {
for (var i in loading) {
var mc = loading[i];
var l = mc.getBytesLoaded();
var t = mc.getBytesTotal();
if (l && t && l>=t) {
mc._x = Number(heap[mc][1]);
mc._y = Number(heap[mc][2]);
mc.onPress = function() { startDrag(this); };
mc.onRelease = stopDrag;
loading.splice(i, 1);
}
}
if (!loading.length) {
delete _root.onEnterFrame;
}
};
}
};
ldr.load(name);
};
loadFile("images.ini");
да, и сохрани файлик в UTF8 а не в ISO - а то абракадабра будет читаться во флэше
Xarsok X
17.11.2003, 12:28
Вери фенкс.
Только не пойму что Output вылазиет?
Nox Noctis
17.11.2003, 12:31
убей строчку trace(mc); если мешает :)
Xarsok X
08.12.2003, 16:29
упс...
А почему когда вставляешь 2 скрипта с разными переменными, 1 скрипт координаты(_x, _y) картинок равняет 0
1 скрипт:
loadFile = function (name) {
var ldr = new XML();
loading = [];
heap = [];
ldr.onData = function(txt) {
var img = txt.split("\r\n");
for (var i = 0; i<img.length; i++) {
var mc = _root.bill.createEmptyMovieClip("images"+i, 1+i);
trace(mc);
heap[mc] = img[i].split("\t");
loading.push(mc);
mc.loadMovie(heap[mc][0]);
_root.onEnterFrame = function() {
for (var i in loading) {
var mc = loading[i];
var l = mc.getBytesLoaded();
var t = mc.getBytesTotal();
if (l && t && l>=t) {
mc._x = heap[mc][1];
mc._y = heap[mc][2];
mc.onPress = function() { startDrag(this); };
mc.onRelease = stopDrag;
loading.splice(i, 1);
}
}
if (!loading.length) {
delete _root.onEnterFrame;
}
};
}
};
ldr.load(name);
};
loadFile("images.ini");
2 скрипт:
gloadFile = function (gname) {
var gldr = new XML();
gloading = [];
gheap = [];
gldr.onData = function(gtxt) {
var gimg = gtxt.split("\r\n");
for (var gi = 0; gi<gimg.length; gi++) {
var gmc = _root.admin.createEmptyMovieClip("gimage"+gi, 1+gi);
trace(gmc);
gheap[gmc] = gimg[gi].split("\t");
gloading.push(gmc);
gmc.loadMovie(gheap[gmc][0]);
_root.onEnterFrame = function() {
for (var gi in gloading) {
var gmc = gloading[gi];
var gl = gmc.getBytesLoaded();
var tg = gmc.getBytesTotal();
if (gl && tg && gl>=tg) {
gmc._x = 0;
gmc._y = gheap[gmc][1];
gmc.onPress = function() { this._alpha = 50; };
gmc.onRelease = this._alpha = 100;
gloading.splice(gi, 1);
}
}
if (!gloading.length) {
delete _root.onEnterFrame;
}
};
}
};
gldr.load(gname);
};
gloadFile("stas.ini");
меня терзает смутное сомнение что гдето ^ там просто есть ошибка
Nox Noctis
08.12.2003, 17:32
ээ... не понял :)
ты поставил два скрипта с разными переменными подряд ?
если так - то косяк в том что клипы mc и gmc создаются на одинаковых глубинах и стирают друг друга
только зачем тебе два скрипта-то ?..
и еще - я тут наморозил слегка... :) вынеси определение функции _root.onEnterFrame за цикл... хотя и так работает канеш :)
kompadre
08.12.2003, 18:14
В первый раз вижу такие осмысленные вопросы к докладчику(кроме последнего разве).
Снимаю шляпу
Xarsok X
10.12.2003, 05:25
ээ... не понял :)
ты поставил два скрипта с разными переменными подряд ?
если так - то косяк в том что клипы mc и gmc создаются на одинаковых глубинах и стирают друг друга
только зачем тебе два скрипта-то ?..
и еще - я тут наморозил слегка... :) вынеси определение функции _root.onEnterFrame за цикл... хотя и так работает канеш :)
Нет не подряд, а один в мувике bill
а другой в мувике admin
1 скрипт считывает инфу с images.ini и выводит картинки на карту (каковато города)
2 скриптсчитывает инфу с stas.ini(где записаны все виды картинок) и выводит картинки на админ зону (тыкаеш на картинку она с помошью внешнего скрипта записывает картинку с кардинатами 0 0 в images.ini) :)
YuriiZelenev
11.12.2003, 02:12
2Xarsok X: molodec!
ya toje snimayu shlyapu... :)
nu pervoe - esli ya pralno ponelgloadFile = function (gname) {
var gldr = new XML();
gloading = [];
gheap = [];
gldr.onData = function(gtxt) {
var gimg = gtxt.split("\r\n");
for (var gi = 0; gi<gimg.length; gi++) {
var gmc = _root.admin.createEmptyMovieClip("gimage"+gi, 1+gi);
trace(gmc);
gheap[gmc] = gimg[gi].split("\t");
gloading.push(gmc);
gmc.loadMovie(gheap[gmc][0]);
_root.onEnterFrame = function() {
for (var gi in gloading) {
var gmc = gloading[gi];
var gl = gmc.getBytesLoaded();
var tg = gmc.getBytesTotal();
if (gl && tg && gl>=tg) {
gmc._x = 0 ;
gmc._y = gheap[gmc][1];
gmc.onPress = function() { this._alpha = 50; };
gmc.onRelease = this._alpha = 100;
gloading.splice(gi, 1);
}
}
if (!gloading.length) {
delete _root.onEnterFrame;
}
};
}
};
gldr.load(gname);
};
gloadFile("stas.ini");
poetomu i 0...
nu a votoroe - tak eto ne ochen' horosho na odin i tot-je event veshat' 2 raza..
_root.onEnterFrame = function(){...}
Xarsok X
11.12.2003, 05:38
Нефига не понял, plz на русском написать :)
Nox Noctis
11.12.2003, 12:43
Xarsok X, ты начинаешь портить впечатление :))
покажи исходник с уже увставленными модифицированными функциями... иначе фиг разберешься что у тебя там не пошло.
Xarsok X
15.12.2003, 12:53
Исходник 300Кб (http://win.mail.ru/cgi-bin/readmsg/map.rar?id=10714781160000011084;0;1&mode=attachment&channel=)
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.