Kopiowanie danych bitmapyFlash Player 9 i nowsze wersje, Adobe AIR 1.0 i nowsze wersje W celu skopiowania danych bitmapy z jednego obrazu do drugiego można skorzystać z jednej z kilku metod: clone(), copyPixels(), copyChannel() i draw(). Zgodnie z tym, co sugeruje nazwa, metoda clone() umożliwia klonowanie i próbkowanie danych bitmapy z jednego obiektu BitmapData do innego. Wywołanie tej metody zwraca nowy obiekt BitmapData, który jest dokładnie sklonowanym obiektem instancji, z której został skopiowany. W poniższym przykładzie opisano klonowanie kopii pomarańczowego kwadratu (stanowiącego element nadrzędny) i umieszczenie tego sklonowanego obiektu za oryginalnym kwadratem nadrzędnym: import flash.display.Bitmap; import flash.display.BitmapData; var myParentSquareBitmap:BitmapData = new BitmapData(100, 100, false, 0x00ff3300); var myClonedChild:BitmapData = myParentSquareBitmap.clone(); var myParentSquareContainer:Bitmap = new Bitmap(myParentSquareBitmap); this.addChild(myParentSquareContainer); var myClonedChildContainer:Bitmap = new Bitmap(myClonedChild); this.addChild(myClonedChildContainer); myClonedChildContainer.x = 110; Metoda copyPixels() to szybki i prosty sposób na kopiowanie pikseli z jednego obiektu BitmapData do innego. Metoda ta pobiera prostokątną migawkę (zdefiniowaną parametrem sourceRect) obrazu źródłowego i kopiuje ją do innego, również prostokątnego obszaru (o podobnej wielkości). Lokalizacja nowo „wklejonego” prostokąta jest zdefiniowana w parametrze destPoint. Metoda copyChannel() próbkuje predefiniowany kanał koloru (alfa, czerwony, zielony lub niebieski) ze źródłowego obiektu BitmapData i kopiuje go do kanału docelowego obiektu BitmapData. Wywołanie tej metody nie ma wpływu na inne kanały w docelowym obiekcie BitmapData. Metoda draw() pobiera lub renderuje graficzną zawartość z ikonki źródłowej, klipu filmowego lub innego obiektu wyświetlania do nowej bitmapy. Korzystając z parametrów matrix, colorTransform, blendMode oraz docelowego clipRect, można modyfikować sposób, w jaki renderowana jest nowa bitmapa. W metodzie tej w celu wygenerowania danych zastosowano renderowanie wektorowe w programie Flash Player oraz AIR. Wywołując metodę draw(), użytkownik przekazuje obiekt źródłowy (ikonka, klip filmowy lub inny obiekt wyświetlany) jako pierwszy z parametrów, zgodnie z tym, co zaprezentowano poniżej: myBitmap.draw(movieClip); Jeśli do obiektu źródłowego były stosowane jakiekolwiek przekształcenia (kolor, macierz itd.) już po jego załadowaniu, przekształcenia te nie są kopiowane do nowego obiektu. W przypadku zamierzenia skopiowania przekształceń do nowej bitmapy konieczne jest następnie skopiowanie wartości właściwości transform z obiektu oryginalnego do właściwości transform obiektu Bitmap korzystającego z nowego obiektu BitmapData. |
|