Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   BitmapData в AS3 (http://www.flasher.ru/forum/showthread.php?t=124564)

imdogma 03.05.2009 22:23

BitmapData в AS3
 
В AS2 пользовался вот примерно таким кодом для создания заливки из точек. Подскажите, комрады, как это терь будет в АС3. Чтото пытался вникнуть в хелп по ас3, но никак не могу разобраться с этим :(
Код AS1/AS2:

import flash.display.*;
import flash.geom.*;
 
var bmpd:BitmapData = new BitmapData(2,2);
var rect1:Rectangle = new Rectangle(0,0,1,1);
 
 
bmpd.fillRect(rect1, 0x000000);
bmpd.fillRect(rect2);
 
 
this.createEmptyMovieClip("bmp_fill_mc", this.getNextHighestDepth());
with (bmp_fill_mc) {
  matrix = new Matrix();
  matrix.rotate(Math.PI);
  repeat = true;
  smoothing = false;
  beginBitmapFill(bmpd, matrix, repeat, smoothing);
  moveTo(0, 0);
  lineTo(0, 600);
  lineTo(600, 600);
  lineTo(600, 0);
  lineTo(0, 0);
  endFill();
}
 
bmp_fill_mc._xscale = 100;
bmp_fill_mc._yscale = 100;


flash33 03.05.2009 22:40

Код AS3:

import flash.display.*;
import flash.geom.*;
 
var bmpd:BitmapData = new BitmapData(2,2);
var rect1:Rectangle = new Rectangle(0,0,1,1);
 
 
bmpd.fillRect(rect1, 0x000000);
bmpd.fillRect(rect2);
 
 
bmp_fill_mc = this.addChild(new Sprite());
with (bmp_fill_mc.graphics) {
  matrix = new Matrix();
  matrix.rotate(Math.PI);
  repeat = true;
  smoothing = false;
  beginBitmapFill(bmpd, matrix, repeat, smoothing);
  moveTo(0, 0);
  lineTo(0, 600);
  lineTo(600, 600);
  lineTo(600, 0);
  lineTo(0, 0);
  endFill();
}
 
bmp_fill_mc.scaleX = 1;
bmp_fill_mc.scaleY = 1;

примерно так

imdogma 03.05.2009 23:02

Немного подправил ваш код, получился вот такой:
Код AS3:

import flash.display.*;
import flash.geom.*;
 
var bmp_fill_mc:MovieClip = new MovieClip();
 
var bmpd:BitmapData = new BitmapData(2,2);
var rect1:Rectangle = new Rectangle(0,0,1,1);
 
 
bmpd.fillRect(rect1, 0x000000);
 
 
 
bmp_fill_mc = this.addChild(new Sprite());
with (bmp_fill_mc.graphics) {
  matrix = new Matrix();
  matrix.rotate(Math.PI);
  repeat = true;
  smoothing = false;
  beginBitmapFill(bmpd, matrix, repeat, smoothing);
  moveTo(0, 0);
  lineTo(0, 600);
  lineTo(600, 600);
  lineTo(600, 0);
  lineTo(0, 0);
  endFill();
}
 
bmp_fill_mc.scaleX = 1;
bmp_fill_mc.scaleY = 1;

но выплевывает ошибку 1118: Implicit coercion of a value with static type flash.display:DisplayObject to a possibly unrelated type flash.display:MovieClip..

flash33 03.05.2009 23:09

да? А зачем вы поправляли?

imdogma 03.05.2009 23:22

Дык еще больше ошибок было:)

flash33 03.05.2009 23:25

То что вары не стояли - ошибки ваши. А то что третью строчку вы придумали - она лишняя. В ней вы декларируете переменную bmp_fill_mc как MovieClip, а в 7 строке этой же переменной присваиваете объект типа Sprite. Ферштейн?

imdogma 03.05.2009 23:27

Все, разобрался. Вот рабочий код:
Код AS3:

import flash.display.*;
import flash.geom.*;
 
var bmpd:BitmapData = new BitmapData(2,2);
var rect1:Rectangle = new Rectangle(0,0,1,1);
 
 
bmpd.fillRect(rect1, 0x000000);
 
 
 
var bmp_fill_mc = this.addChild(new Sprite());
with (bmp_fill_mc.graphics) {
  matrix = new Matrix();
  matrix.rotate(Math.PI);
  repeat = true;
  smoothing = false;
  beginBitmapFill(bmpd, matrix, repeat, smoothing);
  moveTo(0, 0);
  lineTo(0, 600);
  lineTo(600, 600);
  lineTo(600, 0);
  lineTo(0, 0);
  endFill();
}
 
bmp_fill_mc.scaleX = 1;
bmp_fill_mc.scaleY = 1;


flash33 03.05.2009 23:33

Только через осознание своих ошибок человек учится. Поздравлям-с )

imdogma 04.05.2009 01:43

Хехе, спасибо :rolleyes:

etc 04.05.2009 07:40

А смысл в двух последних строчках?

И тип bmp_fill_mc не забывайте указывать.


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

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