PDA

Просмотр полной версии : Bitmap в чем ошибка


farmonol
07.03.2007, 15:19
Здравствуйте!
Возникла простая казалось бы задача - потребовалось загрузить картинку из внешнего файла и вывести фрагмент этой картинки со смещением на экран. Где-то я допустил ошибку, т.к. на экран выводится только исходная картинка. Помогите плиз найти где косяк?

import flash.display.BitmapData;
import flash.geom.Point;
import flash.geom.Rectangle;
//******************************************
var mcp:MovieClip=_root.createEmptyMovieClip("mcp",1);
mcp.loadMovie("map.jpg");

var bm:BitmapData = new BitmapData();
bm.draw(mcp);
var rect:Rectangle = new Rectangle(0,0,132,132);
bm.copyPixels(bm,rect,new Point(50,50));

_root.createEmptyMovieClip("zzz",10);
zzz.attachBitmap(bm);

etc
07.03.2007, 15:27
В том, что высоту и ширину битмапа надо указывать.

farmonol
07.03.2007, 15:34
В том, что высоту и ширину битмапа надо указывать.
указал:

var bm:BitmapData = new BitmapData(400, 400, false, 0x00CCCCCC);

тоже самое - исходная картинка отображается, а фрагмент со смещением нет.

etc
07.03.2007, 15:43
А с чего ты взял, что картинка на момент снятия скриншота уже успела загрузиться?
Пользуй MovieClipLoader и отслеживай момент загрузки.

farmonol
07.03.2007, 19:23
А с чего ты взял, что картинка на момент снятия скриншота уже успела загрузиться?
Пользуй MovieClipLoader и отслеживай момент загрузки.

Кажется дело в чем-то другом...
Допустим я просто аттачу мувик из библиотеки и пытаюсь его перевести в растр:


import flash.display.BitmapData;

_root.attachMovie("map","map",1);
var bm:BitmapData = new BitmapData(600, 600);
bm.draw(map);
_root.map.removeMovieClip();

_root.createEmptyMovieClip("zzz",10);
zzz.attachBitmap(bm);

в результате на экране - пусто. где ошибка?:o

etc
07.03.2007, 20:09
А области видимости совпадают?

this.create
07.03.2007, 20:21
zzz.attachBitmap(bm, this.getNextHighestDepth());
Хотя конечно правильнее( логичнее) так:
zzz.attachBitmap(bm, zzz.getNextHighestDepth());

farmonol
07.03.2007, 20:40
zzz.attachBitmap(bm, this.getNextHighestDepth());
Хотя конечно правильнее( логичнее) так:
zzz.attachBitmap(bm, zzz.getNextHighestDepth());

действительно все дело было в этом. спасибо большое!