PDA

Просмотр полной версии : прочесть имя swf файла в переменну ... - ?


digi-est
15.11.2004, 21:19
Privet,
Nau4ite pozailusta 4itat imja .swf faila v peremenuju?! :)

ja pitajus tak:

a = this._url.length;
trace(a);
if(id==undefined){
d = this._url.slice((a-6), (a-4))
ndex = d
} else {
ndex=id
}


,no ne polu4aetsja...
hotja v ideale, hotelos bi 4to bi v peremennuju(id) zanesti mozno bilo vse znaki do naprimer znaka "-"

Esli imja faila(naprimer): flash-23.swf
to vilovit hotelos bi eto 23(no pri etom eto mozet bit i ne 23, a skazem 123 ili 00123).

Probival tak:


a = this._url.length;
if(id==undefined){
d = a.split("-");
d2 = d.slice((d),(d-4));
ndex = d2
} else {
ndex=id
}


..., vsjo ravno ne rabotaet, pomogite pozailusta
Zaranie blagodaren!

Iv
15.11.2004, 23:33
_root.addProperty("filename", function () {
return unescape(this._url.split("/").pop());
}, null);
_root.getNumber = function (delimiter) {
return _root.filename.split(".")[0].split(delimiter)[1]
}
trace(_root.getNumber("-"));

digi-est
16.11.2004, 01:40
mozno glupii vopros, kak eto rabotaet?

trace vidajot sledushee:
name=onLoadthis name=[type Function]


(srazu izvenjajus esli glupost sprashivaju, do etogo ne vstre4al takogo roda kod)

Iv
16.11.2004, 14:42
я не совсем понял, это к этому же вопросу?

если у тебя есть функция onLoad, то выражением
name=onLoad
ты присваиваешь переменной name ссылку на функцию и в трейсе получаешь [type Function]. так и должно быть.

как это работает:

// создаем пользовательское свойство "filename", задаем get-обработчик, set-обработчик не нужен: null
_root.addProperty("filename", function () {
// сплитуем url и берем последний элемент, заодно конвертируем эскейпнутые символы
return unescape(this._url.split("/").pop());
}, null);
// теперь при обращении к свойству "filename" возвращается имя файла.

// теперь нам нужно получить "номер" файла
// для этого пишем метод, в котором
_root.getNumber = function (delimiter) {
// разбиваем по точке и берем первый элемент массива
// этот элемент в свою очередь разбиваем по разделителю, указанному в аргументах и берем второй элемент.
return _root.filename.split(".")[0].split(delimiter)[1]
}

// всё. тестируем.
trace(_root.filename);
trace(_root.getNumber("-"));