преобразовать замаскированный мувиклип в растровое изображение и сохранить на сервере - PullRequest
0 голосов
/ 03 февраля 2011

У меня есть dsgnArea ----> мувиклип

dsgnArea маскируется dsgnAreaMask, который является мувиклипом

dsgnArea.mask = dsgnAreaMask;

* 1006ширина, высота и положение dsgnAreaMask и dsgnArea одинаковы.

я динамически добавил несколько видеоклипов и меток в dsgnArea;like .. dsgnArea.addChild (movieClip1);dsgnArea.addChild (movieClip2);dsgnArea.addChild (label1);dsgnArea.addChild (label2);и так далее ...

       these movieclips (movieClip1,movieClip2,......) and labels(label1,label2,....) positions can be altered in runtime..

но поскольку я замаскировал dsgnArea с помощью dsgnAreaMask, видна только часть добавленных роликов-клипов и меток ...

Итак, моя проблема заключается взахватите эту видимую часть в dsgnArea в растровое изображение, например, снимок экрана этого конкретного dsgnArea, и сохраните его на моем сервере.

, пожалуйста, помогите мне в этой проблеме.

Ответы [ 3 ]

1 голос
/ 03 февраля 2011

Скажем s - это объект DisplayObject, который вы хотите захватить, а m - маска, примененная к нему.

var maskRect:Rectangle = m.getRect(s);
var matrix:Matrix = new Matrix(1, 0, 0, 1, -maskRect.x, -maskRect.y);

var w:Number = Math.min(s.width, maskRect.right) - maskRect.x;
var h:Number = Math.min(s.height, maskRect.bottom) - maskRect.y;

var bd:BitmapData = new BitmapData(w, h);
bd.draw(s, matrix);

Это работает?

0 голосов
/ 03 февраля 2011

Quasimondo сделал небольшой удобный метод для этого (сделайте снимок всего displayObject), он доступен здесь: http://www.quasimondo.com/archives/000670.php

Я не знаю, работает ли он сзамаскированный контент, хотя.если этого не произойдет, уловка будет заключаться в том, чтобы перевести весь контент по размеру маски

var bounds:Rectangle = dsgnAreaMask.getBounds( dsgnAreaMask );

вместо использования содержимого клипа

var bounds:Rectangle = clip.getBounds( clip );

доСохранение файла на сервер касается, вопрос был задан (ответил?) здесь AS3 Сохранить файл мультимедиа на сервер

0 голосов
/ 03 февраля 2011

Метод BitmapData draw - это то, что вы ищете. Вы можете использовать его параметр clipRect, чтобы определить, что вы хотите нарисовать (маскированные части).

...