PDA

Просмотр полной версии : Как привести строковый тип к типу...


Евгени4
21.04.2010, 00:37
Есть XML в котором нужно подсчиать количество dot'ов и загнать их в массив

var test:XML = XML(<root>
<rang>200</rang>
<dot1>Текст бла бла</dot1>
<dot2>Текст бла бла</dot2>
<dot2>Текст бла бла</dot2>
<dot3>Текст бла бла</dot3>
<author>Author</author>
</root>);
проблема в cледующем, как привести строковый тип к типу... (не знаю к камому)
чтобы можно было обратиться к test.dot*

function num_of_dot():void {
for (var i:int = 1; i < 10; i++) {
var numb:* = *("dot" + [i]);
//обращаемся test.numb и
//далее гоним в массив
}

Hidest
21.04.2010, 01:31
Что-то сами себе проблемы ищете с такой структурой, в которой теряется удобство xml


<dots>
<dot>value</dot>
<dot>value</dot>
...
</dots>

dots.length() - количество
dots[i] - нужная нода


если по памяти ничего не напутал... )

Евгени4
21.04.2010, 01:53
Hidest
Это всего лишь пример XML, основной формируется на стороне.
За пример всёравно спасибо, возьму на заметку, так как я только на начальном этапе освоения AS3.

Привел к типу Object и обратился через child, всё заработало.
var num_b:Object = test.child(("dot" + [i]) as Object);

Если можно как то по проще выкрутиться, напишите если не сложно. :)

wvxvw
21.04.2010, 02:32
Откройте документацию, то что вы написали вообще ни в какие ворота, просто один раз бегло просмотрите хотя бы...
var test:XML =
<root>
<rang>200</rang>
<dot1>Текст бла бла</dot1>
<dot2>Текст бла бла</dot2>
<dot2>Текст бла бла</dot2>
<dot3>Текст бла бла</dot3>
<author>Author</author>
</root>;
trace(test["dot" + 3].toXMLString());

Евгени4
21.04.2010, 13:54
wvxvw
Вот нашел child() (http://help.adobe.com/ru_RU/AS3LCR/Flash_10.0/XML.html#child())
Параметры
propertyName:Object — Имя элемента или целого числа дочернего XML.
Вот документированно, я так и сделал привел к типу объект и обратился.
Или тут какие-то подводные камни есть?

wvxvw
21.04.2010, 17:45
А зачем массивы со строками складывать?
Не нужно строку к Object приводить, она и так Object.