Как работает Adobes AS3-"Core-Libraries"?

Прежде всего, я не мог решить, должен ли я спросить об этом здесь или у "программистов", пожалуйста, будьте осторожны;)

Интересно, что происходит под капотом того, что я бы назвал "базовыми библиотеками" AS3 (да, в данном случае это может быть не совсем точный термин, но теперь у вас есть представление о том, что я имею в виду).

Так, например, когда я печатаю:

var shape:Shape = new Shape();
shape.graphics.beginFill( 0xff0000 );
shape.graphics.drawCircle( 100, 100, 100);

... что именно происходит в графическом объекте? Я предполагаю, что это будут вызовы API рендеринга AVM2, но как это выглядит? Есть ли способ посмотреть на это, или эти источники полностью закрыты для кого-либо за пределами Adobe?

Спасибо!

3 ответа

Решение

Моим предложением было бы скомпилировать что-то простое (например, то, что у вас есть выше), и запустить его через что-то, чтобы вывести abc (код байта Actionscript), код, который выполняется на виртуальной машине.

Вы можете попробовать проекты abcdump и swf2abc.

Начните с чтения байт-кода чего-то действительно простого и посмотрите, что вы думаете:)

Я согласен с предложением @sberry посмотреть на некоторый байт-код.

Но прежде чем сделать это, вы можете заглянуть в вики AVM2.

Следующее видео действительно полезно для понимания того, как рендеринг работает во Flash.

поскольку Shape рисует векторную графику, я представляю, что происходит, когда вы звоните drawCircle() в значительной степени то, что объясняется в видео.

Другие вопросы по тегам