這個(gè)例子是建立在上一個(gè)interop示例的基礎(chǔ)上的,這個(gè)例子演示了一些更復(fù)雜的交互。(繪制到舞臺(tái))。 這個(gè)例子由兩個(gè)CPP文件組成,所以,可以去看它的makefile文件,看它們是如何用G++打包的(如果不熟悉G++的話,可以通過這個(gè)學(xué)習(xí)一下用法)。
如果你不太熟悉Voronoi圖,可以自己百度,但是,這不是本示例的重點(diǎn)。這個(gè)例子主要是想向大家展示的是一些在voronoi.cpp使用到的FLASH交互內(nèi)容。
如果你查看voronoi.cpp源代碼,你可以看見一個(gè)叫console的類。 這個(gè)類的源代碼放在了sdk/usr/share/Console.as位置。 這個(gè)類的目的就是提供一些libc的調(diào)用實(shí)現(xiàn),比如printf什么的。
Console.as除了提供基礎(chǔ)調(diào)用以外,也是作為你編譯為SWF文件的主類,大家都知道的,如果在AS3中想生成一個(gè)項(xiàng)目,必須是要有一個(gè)活動(dòng)AS3文檔,派生自Sprite作為入口函數(shù)的。 Console.as提供了一個(gè)TextField來接受所有的標(biāo)準(zhǔn)C/C++輸出。 而在一個(gè)真正的SWF或者SWC中,你可能需要替換Console.as來實(shí)現(xiàn)自己的需求,比如輸出重定向什么的。 下一個(gè)例子就會(huì)向你演示如何來實(shí)現(xiàn)一個(gè)自己的Console.as。
但是,在這個(gè)例子中,大家只要把注意力集中在它的current變量上就可以了。
當(dāng)使用默認(rèn)的SWF版本(-swf-version-18)編譯時(shí)。FLASCC將會(huì)嘗試在后臺(tái)運(yùn)行代碼。 但是,在這個(gè)例子中,我們直接將想要繪制的東西繪制到舞臺(tái)上。 因?yàn)槲枧_(tái)上的東西,在后臺(tái)運(yùn)行時(shí),也會(huì)得到相應(yīng)的處理。 至于 多線程的東西, 后面的教程會(huì)提到,所以,這個(gè)例子就沒有必要演示得太多了。
最后,這個(gè)例子使用了SWF 17進(jìn)編譯,它會(huì)運(yùn)行在Flash的主線程中。