![]() |
|
||||||||||
|
|||||
|
Регистрация: May 2004
Сообщений: 56
|
Подскажите плз можно ли заставить работать например такую строку:
i="play"; a=10; "gotoAnd" + i + "(" + a + ");" Спасибо. |
|
|||||
|
Регистрация: Jan 2002
Сообщений: 1,323
|
i="Play";
a=10; this["gotoAnd"+i](a); или mc["gotoAnd"+i](a), где mc - клип, который должен перескочить на 10-й кадр. Не забудь, что "Play" надо писать с большой буквы.
__________________
ВКЛЮЧИ МОЗГИ!!! Одноразовых граблей не бывает. На большинство из них уже кто-то наступал. (c) Dindin |
|
|||||
|
Регистрация: May 2004
Сообщений: 56
|
Хотел попроще. Но похоже не лучший пример привел...
А вот так: nodesTest=""; for (i=1; i<=3; i++) { nodesTest=nodesTest+".childNodes[0]"; } this.nodesTest.nodeName - не работает. eval("this."+nodesTest+".nodeName") - тоже не хочет. Или там все СОВСЕМ по другому надо? |
|
|||||
|
Регистрация: Jan 2002
Сообщений: 1,323
|
не хочет eval, собака, квадратные скобки обрабатывать как надо. Через точку работает (в 5-ке, 6-ке и 7-ке):
node1=new XML(); node2=new XML(); node3=new XML(); node4=new XML(); node1.nodeName="first"; node2.nodeName="second"; node3.nodeName="third"; node4.nodeName="fourth"; node2.appendChild(node1); node3.appendChild(node2); node4.appendChild(node3); nodesTest="node4"; for (i=0; i<4; i++) { trace(eval(nodesTest+".nodeName")); nodesTest=nodesTest+".childNodes.0"; } но выглядит как-то некорректно. И this[...] это не переваривает... Я бы так делать не стал, решил бы задачу как-то по-другому.
__________________
ВКЛЮЧИ МОЗГИ!!! Одноразовых граблей не бывает. На большинство из них уже кто-то наступал. (c) Dindin |
|
|||||
|
Регистрация: Apr 2004
Адрес: macromedia—adobe Любит: Flash MX
Сообщений: 2,860
|
Не понимаю я вас что-то, а зачем ваще такие сложные пути нужны, понимаю если переменная это имя или номер кадра, а "PLAY" тут зачем ?
![]()
__________________
маска лошади и коня в россии и снг с бесплатной доставкой gimmethevape вейпы и поды доставка |
|
|||||
|
Цитата:
__________________
За двумя зайцами погонишься - от егеря по морде получишь |
|
|||||
|
Возможно, я не совсем срубил фишку, но по-моему, так - правильнее:
node1=new XML();
node2=new XML();
node3=new XML();
node4=new XML();
node1.nodeName="first";
node2.nodeName="second";
node3.nodeName="third";
node4.nodeName="fourth";
node2.appendChild(node1);
node3.appendChild(node2);
node4.appendChild(node3);
nodesTest="node4";
obj = this['node4']
for (i=0; i<4; i++) {
trace(obj.nodeName);
obj =obj['childNodes'][0];
}
__________________
судью - на мыло, из игроков - вить веревки. |
|
|||||
|
Регистрация: Jan 2002
Сообщений: 1,323
|
Не срубил.
Смысл был в том, чтобы сделать текстовую "насадку" и применять ее к разным нодам. deepNode=""; for (i=0; i<depth; i++) deepNode=deepNode+".childNodes.0"; trace(eval("node1"+deepNode+".nodeName")); trace(eval("node2"+deepNode+".nodeName")); trace(eval("node3"+deepNode+".nodeName"));
__________________
ВКЛЮЧИ МОЗГИ!!! Одноразовых граблей не бывает. На большинство из них уже кто-то наступал. (c) Dindin Последний раз редактировалось TTS; 02.06.2004 в 05:27. |
|
|||||
|
1)
deepNode="";
for (i=0; i<depth; i++) deepNode=deepNode+".childNodes.0";
trace(eval("node1"+deepNode+".nodeName"));
trace(eval("node2"+deepNode+".nodeName"));
trace(eval("node3"+deepNode+".nodeName"));
node1=new XML();
node2=new XML();
node3=new XML();
node4=new XML();
node1.nodeName="first";
node2.nodeName="second";
node3.nodeName="third";
node4.nodeName="fourth";
node2.appendChild(node1);
node3.appendChild(node2);
node4.appendChild(node3);
deepNode=".childNodes.0";
trace(eval("node2"+deepNode+".nodeName"));
trace(eval("node3"+deepNode+".nodeName"));
trace(eval("node4"+deepNode+".nodeName"));
node1=new XML();
node2=new XML();
node3=new XML();
node4=new XML();
node1.nodeName="first";
node2.nodeName="second";
node3.nodeName="third";
node4.nodeName="fourth";
node2.appendChild(node1);
node3.appendChild(node2);
node4.appendChild(node3);
function deepNode (obj:Object){
return obj['childNodes'][0];
}
trace(deepNode(this["node2"]).nodeName);
trace(deepNode(this["node3"]).nodeName);
trace(deepNode(this["node4"]).nodeName);
![]()
__________________
судью - на мыло, из игроков - вить веревки. |
|
|||||
|
Регистрация: Jan 2002
Сообщений: 1,323
|
Мнэээээ... Как бы объяснить-то.... И надо ли....
Допустим, такая задачка. Пример дурацкий, конечно, но тут сложно придумать что-то подходящее. Пусть надо написать ф-ю, которая вытаскивает имя нода из хмл элемента, причем заранее неизвестно с какой глубины вложенности и какой по счету нод. Принимаемые значения - XML-объект (пусть это будет корневой элемент) и путь к ноду: function getNodeName(XMLrootelement, path){ ... } path может быть и childNodes[0], и childNodes[3].childNodes[0], и childNodes[5].lastChild.previousSibling - какой угодно и заранее неизвестный. Так вот задачка - что писать внутри фигурных скобок, чтобы присовокупить этот заранее неизвестный path к заранее неизвестному XMLrootelement. По нашей методе получается так: return eval("XMLrootelement"+path+".nodeName"), причем path - текстовый, с точками вместо квадратных скобок у массивов. Из-за которых, собсно, весь сыр-бор. Твоя задача - придумать более приличный вариант ![]()
__________________
ВКЛЮЧИ МОЗГИ!!! Одноразовых граблей не бывает. На большинство из них уже кто-то наступал. (c) Dindin |
![]() |
Часовой пояс GMT +4, время: 09:54. |
|
|
« Предыдущая тема | Следующая тема » |
|
|