Как работает 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()
в значительной степени то, что объясняется в видео.