2011-02-07 35 views
1

我有可能是一個有趣的情況。我正在開發一個使用形狀的動態繪圖工具,我需要能夠將對象的當前「狀態」存儲在數據庫中。AS3:在數據庫中存儲動畫片段的方法

「形狀」將隨着自定義繪製的形狀將是簡單的幾何形狀,所以我不能只存儲它們的幾何足跡。

下面是一個例子的屏幕截圖(簡單的形狀):

enter image description here

在使用期間,這些形狀可以被拖動,調整大小,旋轉,刪除和分割成更小的形狀,從而它們的電流特性需要保留。

任何想法?我只需要一個起點。

回答

0

一種典型的方法是存儲一組繪圖步驟,然後在加載它們之後重新解析這些步驟。即基本上存儲繪圖命令的列表。這也可以讓你在沒有太多額外工作的情況下放鬆你的繪圖,進行協作繪圖等。這對於簡單的場景來說是一個不錯的方法和非常低的內存。

這不是很重要,但我認爲這是Flash在繪製對象Graphics上的圖元時如何繪製自己的圖形。

+0

不幸的是,沒有進入太多的細節,這不一定會成爲可能。其中一些元素將被預先繪製。 – jerebear 2011-02-07 23:39:52

0

我懷疑有一些將要應用的具體情況,但是這是我會怎麼處理它(我以前做過類似的東西):

  1. 把所有的轉存的東西在一個雪碧或MovieClip 。
  2. 當您需要保存快照時,循環瀏覽此容器中的所有子項並保存x,y,scaleX,scaleY,alpha,rotation。您可能還想保存名稱,並可能會返回flash.utils.describeType以便您可以動態實例化對象。
  3. 將所有這些都寫入關聯數組(可能每個對象都有一個數組),將其序列化並保存到某處。您也可以創建一個XML結構並將其全部保存。

根據您的需求,您可能需要保存過的過濾器,變換等

爲了重建,基本上你做的一切倒退。只是要小心你的堆疊順序,以確保你以相同的方式分層。

這很簡單,但應該是一個開始。如果我這樣做了,我會把更多的思想放在基本相同的事情上,但採用更好的面向對象的方法。

1

您可以將數據寫入/讀取爲ByteArray對象到文件系統。如果您正在開發AIR應用程序,此功能特別有用,因爲您可以選擇使用EncryptedLocalStore類(目前僅適用於桌面部署目標)來加密數據。

+0

所以我進一步研究了這一點,我找不到ByteArray實用程序類。你能幫我嗎? – jerebear 2011-02-09 14:41:43

相關問題