Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 07.03.2007, 15:19
farmonol вне форума Посмотреть профиль Отправить личное сообщение для farmonol Найти все сообщения от farmonol
  № 1  
Ответить с цитированием
farmonol

Регистрация: Jan 2007
Сообщений: 36
По умолчанию Bitmap в чем ошибка

Здравствуйте!
Возникла простая казалось бы задача - потребовалось загрузить картинку из внешнего файла и вывести фрагмент этой картинки со смещением на экран. Где-то я допустил ошибку, т.к. на экран выводится только исходная картинка. Помогите плиз найти где косяк?
Код:
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);

Старый 07.03.2007, 15:27
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 2  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
В том, что высоту и ширину битмапа надо указывать.

Старый 07.03.2007, 15:34
farmonol вне форума Посмотреть профиль Отправить личное сообщение для farmonol Найти все сообщения от farmonol
  № 3  
Ответить с цитированием
farmonol

Регистрация: Jan 2007
Сообщений: 36
Цитата:
Сообщение от __etc
В том, что высоту и ширину битмапа надо указывать.
указал:
Код:
var bm:BitmapData = new BitmapData(400, 400, false, 0x00CCCCCC);
тоже самое - исходная картинка отображается, а фрагмент со смещением нет.

Старый 07.03.2007, 15:43
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 4  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
А с чего ты взял, что картинка на момент снятия скриншота уже успела загрузиться?
Пользуй MovieClipLoader и отслеживай момент загрузки.

Старый 07.03.2007, 19:23
farmonol вне форума Посмотреть профиль Отправить личное сообщение для farmonol Найти все сообщения от farmonol
  № 5  
Ответить с цитированием
farmonol

Регистрация: Jan 2007
Сообщений: 36
Цитата:
Сообщение от __etc
А с чего ты взял, что картинка на момент снятия скриншота уже успела загрузиться?
Пользуй 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);
в результате на экране - пусто. где ошибка?


Последний раз редактировалось farmonol; 07.03.2007 в 20:02.
Старый 07.03.2007, 20:09
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 6  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
А области видимости совпадают?

Старый 07.03.2007, 20:21
this.create вне форума Посмотреть профиль Отправить личное сообщение для this.create Найти все сообщения от this.create
  № 7  
Ответить с цитированием
this.create

Регистрация: Feb 2007
Сообщений: 264
Код:
zzz.attachBitmap(bm, this.getNextHighestDepth());
Хотя конечно правильнее( логичнее) так:
Код:
zzz.attachBitmap(bm, zzz.getNextHighestDepth());


Последний раз редактировалось this.create; 07.03.2007 в 20:28.
Старый 07.03.2007, 20:40
farmonol вне форума Посмотреть профиль Отправить личное сообщение для farmonol Найти все сообщения от farmonol
  № 8  
Ответить с цитированием
farmonol

Регистрация: Jan 2007
Сообщений: 36
Цитата:
Сообщение от this.create
Код:
zzz.attachBitmap(bm, this.getNextHighestDepth());
Хотя конечно правильнее( логичнее) так:
Код:
zzz.attachBitmap(bm, zzz.getNextHighestDepth());
действительно все дело было в этом. спасибо большое!

Создать новую тему Ответ Часовой пояс GMT +4, время: 12:42.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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