Flash ActionScript 3.0

Разговоры на любые темы: вы можете обсудить здесь какой-либо сайт, найти единомышленников или просто пообщаться...
iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Flash ActionScript 3.0

Сообщение iGrok » 11.12.2009 (Пт) 0:36

Ищу человека, хорошо разбирающегося в сабже.
Нужно разобрать небольшой кусок кода, который я в упор не понимаю, а прогнать под отладчиком не могу, т.к. флеш ругается на синтаксис.

Код: Выделить всё
public static function getKey(param1:Class) : String
        {
            var xml:XML;
            var xmlList:XMLList;
            var target:* = param1;
            xml = describeType(target);
            var _loc_4:int;
            var _loc_5:* = xml..; //флеш матерится на этой строке
            var _loc_3:* = new XMLList("");
            for each (_loc_6 in _loc_5)
            {
                // label
                var _loc_7:* = _loc_5[_loc_4];
                with (_loc_5[_loc_4])
                {
                    if (hasOwnProperty("@key"))
                    {
                        _loc_3[_loc_4] = _loc_6;
                    }// end if
                }// end with
            }// end of for each ... in
            xmlList = _loc_3;
            if (xmlList.length() > 0)
            {
                return xmlList[0].@value;
            }// end if
            return null;
        }// end function


З.Ы. В первую очередь интересно, почему ругается флеш.
Последний раз редактировалось iGrok 11.12.2009 (Пт) 0:42, всего редактировалось 1 раз.
label:
cli
jmp label

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Flash ActionScript 3.0

Сообщение Хакер » 11.12.2009 (Пт) 0:40

Какими словами матерится?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Flash ActionScript 3.0

Сообщение iGrok » 11.12.2009 (Пт) 0:48

1084: Синтаксическая ошибка identifier перед semicolon.

С одной стороны это логично. Всё-таки там только identifier (xml), оператор доступа к потомкам (..), а потом сразу semicolon (;).
А в справке флеша ничего про такое использование оператора не сказано.

С другой стороны - эта функция вытащена из вполне рабочего кода.

Ну и неплохо бы понять, что она должна делать. Судя по всему - получает xml-описание (отражение) класса, и ищет там строку с парой атрибутов key => value, после чего возвращает value.

Или что-то другое?
label:
cli
jmp label

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Flash ActionScript 3.0

Сообщение iGrok » 11.12.2009 (Пт) 16:17

Можно закрывать. Нашёл ответ на форуме по as. Итог - не все декомпиляторы одинаково полезны. (
Код действительно с ошибкой, другой декомпилер показал его правильно. Но суть кода я всё равно уловил правильно.
Проблема в том, что в описании класса, к которому эта штука применяется, нет метаданных (которым присущи пары key => value). Да и вообще ничего похожего нет. Судя по ответам на форуме по as, нужный кусок внедряется после компиляции, и декомпилером не опознаётся.

З.Ы. Для широкой общественности: ничего противозаконного. Ни у кого ничего не ворую =). Исследование произвожу в целях написать своего клиента для флешевой он-лайн игры.

З.З.Ы. Если кто-то что-то знает про структуру swf-файлов, и возможность её "разобрать", или кому-то просто интересно с этим покопаться - велкам в личку за информацией.
label:
cli
jmp label


Вернуться в Народный треп

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 33

    TopList