1

Тема: збереження картинки as3

Хочу зробити що б зберігалася певна область, але зберігається вся сцена. У мене наприклад на сцені дерево, з ліва вибираєш яблуко яке з'являється на сцені, потім це яблуко можна куди хочь вставляти і трансформувати, як мені зберегти тільки дерево з яблуком?

import com.ryan.geom.*;

apple.addEventListener(MouseEvent.CLICK, createNewapple);
save.addEventListener(MouseEvent.CLICK, savepic);

function createNewapple(event:MouseEvent):void
{
   apple.removeEventListener(MouseEvent.CLICK, createNewapple);
   var newApple:Apple = new Apple();
   apple.parent.addChild(newApple);
   
    var freeTransformManager:FreeTransformManager = new FreeTransformManager();
    freeTransformManager.boundingBoxOutlineColor = 0xff0000;
    freeTransformManager.boundingBoxOutlineThickness = 2;
    freeTransformManager.handleFillColor = 0xff0000;
    freeTransformManager.handleOutlineColor = 0xff0000;
    freeTransformManager.handleRadius = 6;
                    
    freeTransformManager.registerSprite(newApple,{minScale:0.1,maxScale:4});
}

function savepic(event:MouseEvent):void {
    var raw:BitmapData = new BitmapData(stage.stageWidth, stage.stageHeight);
    raw.draw(stage);
    var brr:ByteArray = PNGEncoder.encode(raw);
    var fil:FileReference = new FileReference();
    fil.save(brr, "image.png");
}

2

Re: збереження картинки as3

Скажіть, а наскільки ви взагалі володієте:
а) ActionScript,
б) англійською?
Бо тут вистачить, здається, навіть однієї з цих двох мов...

Подякували: timedoru1

3

Re: збереження картинки as3

koala написав:

Скажіть, а наскільки ви взагалі володієте:
а) ActionScript,
б) англійською?
Бо тут вистачить, здається, навіть однієї з цих двох мов...

а) Приступив тільки до вивчення, краще все дається на практиці, от і роблю різні завдання.
б) Англійську не дуже добре знаю.

4

Re: збереження картинки as3

function savepic(event:MouseEvent):void { - я б припустив, що це функція для зберігання малюнків
var raw:BitmapData = new BitmapData(stage.stageWidth, stage.stageHeight); - створює щось типу малюнка розміром в ширину сцени на висоту сцени
raw.draw(stage); - відмальовує там сцену
var brr:ByteArray = PNGEncoder.encode(raw); - перекодовує малюнок в формат PNG
fil.save(brr, "image.png"); - зберігає перекодований малюнок

Це - при тому, що я розбирав AS2 для себе, а AS3 - ні, і майже жодної з цих функцій не знаю... але певен, що працює воно саме так.
А тепер - вам треба зберегти не всю сцену, а тільки якийсь об'єкт. Що треба змінити в цій функції?

Подякували: timedoru1

5

Re: збереження картинки as3

Я зробив новий об'єкт fotoHolder, на нього все поміщається і малюнок дерева і картинка яблока. Тепер зберігається половина дерева і яблоко(тільки яблуко зберігається не там де його встановили а в лівому верхньому кутку). Не можу зрозуміти як все довести до розуму.

http://s44.radikal.ru/i103/1306/25/d34c17843c0at.jpg

Код:

function savepic(event:MouseEvent):void {
    var raw:BitmapData = new BitmapData(stage.stageWidth, stage.stageHeight);
    raw.draw(fotoHolder);
    raw.draw(apple);
    var brr:ByteArray = PNGEncoder.encode(raw);
    var fil:FileReference = new FileReference();
    fil.save(brr, "image.png");
}

Файли программи: http://yadi.sk/d/2E0vb3fH5iUOU

6

Re: збереження картинки as3

А чому розмір сцени в бітмапа?
Що ж до положення - як намалювали, так і розміщується.

Подякували: timedoru1