Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   кривые --> Bitmap (Возможно?) (http://www.flasher.ru/forum/showthread.php?t=92442)

CREDO 25.02.2007 00:29

кривые --> Bitmap (Возможно?)
 
Есть изображение с многочисленными кривыми. При публикации клипа, сильно загружается процессор. Можно ли как нибудь преобразовать графику в bitmapData и даст ли это толк?

miramax 25.02.2007 00:35

Даст, толк = количество сплайнов / размер битмапДаты.
См. bitmapData.draw();

this.create 25.02.2007 01:09

Цитата:

This class lets you separate bitmap rendering operations from the Flash Player internal display updating routines. By manipulating a BitmapData object directly, you can create very complex images without incurring the per-frame overhead of constantly redrawing the content from vector data.
Как раз для этих случаев изобрели BitmapData.

CREDO 25.02.2007 01:46

Код:

import flash.display.BitmapData;
var myBitmapData:BitmapData = new BitmapData();
myBitmapData.draw(ripples_mc);

Этого будет достаточно? Как проверить преобразовались кривые в bitmap?

this.create 25.02.2007 01:48

Удалите мувик с ними.

etc 25.02.2007 01:48

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

CREDO 25.02.2007 01:52

Код:

import flash.display.BitmapData;
import flash.geom.Rectangle;
import flash.geom.Matrix;
import flash.geom.ColorTransform;
var myBitmapData:BitmapData = new BitmapData();
var myMatrix:Matrix = new Matrix();
myMatrix.rotate(Math.PI/2);
var translateMatrix:Matrix = new Matrix();
translateMatrix.translate(70, 15);
myMatrix.concat(translateMatrix);
var myColorTransform:ColorTransform = new ColorTransform(0, 0, 1, 1, 0, 0, 255, 0);
var blendMode:String = "normal";
var myRectangle:Rectangle = new Rectangle(0, 0, 100, 80);
var smooth:Boolean = true;
myBitmapData.draw(ripples_mc, myMatrix, myColorTransform, blendMode, myRectangle, smooth);

Как проверить?

Woozle 25.02.2007 01:57

на счет этого есть интересная вещь http://www.bytearray.org/?p=67

this.create 25.02.2007 01:59

Вот вы создаете экземпляр класса BitmapData. И создаете его неправильно. Посмотрите в help как надо создавать объекты BitmapData.

CREDO 25.02.2007 02:04

Код:

import flash.display.BitmapData;
import flash.geom.Rectangle;
import flash.geom.Matrix;
import flash.geom.ColorTransform;

var myBitmapData:BitmapData = new BitmapData(100, 80, false, 0x00CCCCCC);

var mc_1:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth());
mc_1.attachBitmap(myBitmapData, this.getNextHighestDepth());

var mc_2:MovieClip = createRectangle(50, 40, 0xFF0000);
mc_2._x = 101;

var myMatrix:Matrix = new Matrix();
myMatrix.rotate(Math.PI/2);

var translateMatrix:Matrix = new Matrix();
translateMatrix.translate(70, 15);

myMatrix.concat(translateMatrix);

var myColorTransform:ColorTransform = new ColorTransform(0, 0, 1, 1, 0, 0, 255, 0);
var blendMode:String = "normal";

var myRectangle:Rectangle = new Rectangle(0, 0, 100, 80);
var smooth:Boolean = true;

mc_1.onPress = function() {
    myBitmapData.draw(mc_2, myMatrix, myColorTransform, blendMode, myRectangle, smooth);
}

function createRectangle(width:Number, height:Number, color:Number):MovieClip {
    var depth:Number = this.getNextHighestDepth();
    var mc:MovieClip = this.createEmptyMovieClip("mc_" + depth, depth);
    mc.beginFill(color);
    mc.lineTo(0, height);
    mc.lineTo(width, height);
    mc.lineTo(width, 0);
    mc.lineTo(0, 0);
    return mc;
}


Вот из helpa/ Всё равно не пойму.


Часовой пояс GMT +4, время: 12:52.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.