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

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

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

Регистрация: May 2009
Сообщений: 7
По умолчанию Как использовать часть изображения?

Заранее прощу прощения, если тема обсуждалась - не нашёл.

Вопрос:

В библиотеке есть изображение, например 100*100 px
Необходмо программно получать из него часть изображения, например 10*10px с заданной позиции и вывести в кадр.

К сожалению программированием на Action Script только что начал заниматься, но буду рад любой информации. Желательно конечно пример кода и указать мануал - где об этом можно почитать.

Спасибо.

Добавлено через 6 минут
Если не понятно написал вопрос - пожалуйста уточните )
А то буду ждать сам не знаю чего =)

Старый 15.06.2009, 21:12
fljot вне форума Посмотреть профиль Отправить личное сообщение для fljot Найти все сообщения от fljot
  № 2  
Ответить с цитированием
fljot

блогер
Регистрация: Jul 2007
Сообщений: 940
Записей в блоге: 3
ну посмотрите на класс BitmapData метод draw или просто на свойство scrollRect у DisplayObject

Старый 15.06.2009, 21:18
negasus вне форума Посмотреть профиль Отправить личное сообщение для negasus Найти все сообщения от negasus
  № 3  
Ответить с цитированием
negasus

Регистрация: May 2009
Сообщений: 7
Цитата:
Сообщение от fljot Посмотреть сообщение
ну посмотрите на класс BitmapData метод draw или просто на свойство scrollRect у DisplayObject
Если не сложно, подскажи пожалуйста где смотреть.
Я тоже думал что информация по BitmapData мне поможет, но не нашел этой информации (

Старый 15.06.2009, 21:48
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 4  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
>>подскажи пожалуйста где смотреть
обычно в хелпе..
Код AS1/AS2:
import flash.display.BitmapData;
import flash.geom.*;
 
var bmd:BitmapData = BitmapData.loadBitmap("image");//image - id картинки в библиотеке
var bmd1:BitmapData = new BitmapData(10, 10);
var rec:Rectangle = new Rectangle(0, 0, 10, 10);//нужная часть
bmd1.copyPixels(bmd, rec, new Point());
this.attachBitmap(bmd1, 0);

Старый 15.06.2009, 21:53
negasus вне форума Посмотреть профиль Отправить личное сообщение для negasus Найти все сообщения от negasus
  № 5  
Ответить с цитированием
negasus

Регистрация: May 2009
Сообщений: 7
silin

Спасибо, пошёл пробовать. На вид - всё просто и понятно )

PS: Вот понимаю что в хелпе )) Но возможно на этом форуме понятие "хелп" отличается от моего. Так как качал различную доку по AS2 - и почему то не нашел нужной инфо. Хотя и склоняюсь к тому, что не там или не так искал )

UPD:
Добавлено через 13 часов 8 минут
Продолжение вопроса

Часть картинки из библиотеки благополучно выводится, но в координатах 0, 0

Как один из выходов я попробовл сделать так:

Код AS1/AS2:
var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth());
...
mc._x = 30;
mc._y = 30;
Есть ли другое решение? Дело в том, что таких частей картинок будет около 100.


Последний раз редактировалось negasus; 16.06.2009 в 11:20.
Старый 16.06.2009, 16:41
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 6  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
да нормальное решение, если надо этими фрагментами еще и манипулировать, то по другому наверное никак
если нужно просто показать, то можно создать большой прозрачный битмап и копировать фрагменты в нужную часть этого битмапа

Старый 16.06.2009, 16:45
negasus вне форума Посмотреть профиль Отправить личное сообщение для negasus Найти все сообщения от negasus
  № 7  
Ответить с цитированием
negasus

Регистрация: May 2009
Сообщений: 7
Цитата:
Сообщение от silin Посмотреть сообщение
если нужно просто показать, то можно создать большой прозрачный битмап и копировать фрагменты в нужную часть этого битмапа
К такому же самому решению пришел час назад ) Очевидное рядом. ))


Правда, к сожалению, созрел еще один вопрос

Пример:

Есть картинки .png с прозрачными частями. Но когда я их накладываю - вместо прозрачного фона получается просто белый цвет.

В библеотеке для моей картинки выставил "без сжатия PNG\GIF" но это ничего не дало

В чем может быть дело?

Старый 16.06.2009, 16:57
Волгоградец вне форума Посмотреть профиль Отправить личное сообщение для Волгоградец Найти все сообщения от Волгоградец
  № 8  
Ответить с цитированием
Волгоградец
 
Аватар для Волгоградец

блогер
Регистрация: Sep 2007
Адрес: Гамбург
Сообщений: 1,648
Записей в блоге: 12
Значит .png не 32-х битная или в copyPixels() самый последний параметр поставили в false.

Старый 16.06.2009, 16:58
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 9  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
битмап, в который копируем должен быть прозрачным (по дефолту он 32-битный, но непрозрачный)
Код AS1/AS2:
var bmp:BitmapData = new BitmapData(10, 10, true, 0x0);

Старый 16.06.2009, 17:02
negasus вне форума Посмотреть профиль Отправить личное сообщение для negasus Найти все сообщения от negasus
  № 10  
Ответить с цитированием
negasus

Регистрация: May 2009
Сообщений: 7
Извиняюсь, надо было сразу указать:

Код AS1/AS2:
var map:BitmapData = new BitmapData(600, 400, true);
...
map.copyPixels(bmdSurf, rec, new Point(x,y));
Как видно, битмап у меня прозрачный. А вот про copyPixels - поясните пожалуйста?
Или про рязрадность png

Добавлено через 1 минуту
Свойства png-картинки: Глубина цвета: 32

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

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

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


 


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


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