2013-03-28 81 views
0

我是Flash的總noob。我不是程序員。只需與Photoshop(圖像設計)很好。如何疊加兩幅圖像並將它們保存到AN圖像中? (Flash CS5)

這是我的問題。我發現了一個簡單的繪圖應用程序並對其進行了修改,只有接口,而不是編碼。

它提供了一個「保存按鈕」,使保存繪圖插入盤驅動(上的MovieClip畫出)。然後我修改它,在之上放置另一層MovieClip a 圖示。但是當我嘗試保存它時,它只會將影片剪輯保存爲.png圖片。我要的是,它節省了影片剪輯圖形分層在它的上面爲一個PNG圖片一起。我怎樣才能做到這一點?

如果我將代碼提供給「保存按鈕」,它可能會更有幫助嗎?

**/* *保存/

private function export():void 
    { 
     var bmd:BitmapData = new BitmapData(600, 290); 

     bmd.draw(board); 

     var ba:ByteArray = PNGEncoder.encode(bmd); 


    private function completeHandler(event:Event):void { 
     var loader:URLLoader = URLLoader(event.target); 
     trace("completeHandler: " + loader.data); 
    } 


    private function saveSuccessful(e:Event):void 
    { 
     saveDialog = new SaveDialog(); 

     addChild(saveDialog); 

     saveDialog.closeBtn.addEventListener(MouseEvent.MOUSE_UP, closeSaveDialog); 
    } 

    private function closeSaveDialog(e:MouseEvent):void 
    { 
     removeChild(saveDialog); 
    } 

    private function save(e:MouseEvent):void 
    { 
     export(); 
    }** 

編輯:我已經把 'bmd.draw(頂層);'在第一次繪製()調用,但後來當我發佈預覽它說:「訪問未定義的屬性topLayer」。我首先檢查了它的屬性,它提到了這個'topLayer的實例',它是一個Graphic。

回答

1

檢查代碼。應該有一個建設fileReference.save(someOtherName)某處,可能與fileReference不同的名稱,但它將被宣佈在附近作爲FileReference=new FileReference()。然後,跟蹤上面的someOtherName,它應該是另一個變量的輸出PNGEncoder.encode(),它應該是BitmapData類型。找出該位圖數據上繪製的是什麼,會出現一行bitmapData.draw(someMovieClip)。找出someMovieClip是否只是您程序中的圖層。您可以在該圖形之後添加一條類似的線來繪製形狀(您應該使用它的名稱以便在代碼中引用它),這會在您繪製的圖形上繪製圖形。

如果您繪製的整個圖形可以放在一個屏幕中,只需截取正在進行的應用程序的截圖,將其加載到Photoshop中,並且可以讓您的圖形在任何節省的情況下都能正確無誤地玩轉。或者,使用現有的已保存圖像作爲背景圖層,將截圖作爲前景,清除不是圖形的區域,並獲得更多樂趣。

編輯:好吧,那裏是:你有export()函數(這是不完整的在你的copypasting,順便說一句),與我提到的所有相關部分。有一個draw()呼叫,一個PNGEncoder.encode()呼叫和一個BitmapData對象。你應該第一個draw()調用像這樣的東西之後添加另一行代碼:

bmd.draw(yourGraphic); 

YourGraphic是你手動的影片剪輯上面添加的圖形,你可以在它的屬性編輯舞臺上的一個名稱。應該做。

回覆:我已經把bmd.draw(topLayer);放在第一個draw()調用下,但是當我發佈預覽時說「訪問未定義的屬性topLayer」。我首先檢查了它的屬性,它提到了這個'topLayer的實例',它是一個Graphic。

+0

我絕對不知道你在說什麼。如果我將代碼提供給「保存按鈕」,它可能會更有幫助嗎? – Jimmy 2013-03-30 02:59:02

+0

下一次,您應該編輯您的問題並添加信息,而不是將其作爲答案發布。我已經爲你完成了編輯。好的,我會研究這些代碼。 – Vesper 2013-03-30 04:17:06

+0

@Jimmy嗯,這需要你確定你已經添加的'topLayer'的完整繼承。也許它是這個MC的某個層次的孩子,這可能會使Flash創建一箇中間層Sprite或MovieClip對象,它將充當頂層的緩衝區,但需要在此draw()調用中進行說明。此代碼的上下文應該是已知的,'topLayer'可能是兄弟,所以'parent.topLayer'可能工作。不幸的是,我無法調查這一點,因爲我沒有工具可以做到這一點(試用版已過期)。也許在某處發佈您的FLA並讓其他人修復它。 – Vesper 2013-04-02 10:16:27

相關問題