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

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

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

Регистрация: Dec 2013
Сообщений: 34
По умолчанию BitmapData и Bitmap

Привет, есть у меня Bitmap с некой нарисованной графикой.
У меня вопрос, если графика внутри Bitmap больше его размеров, то как перетащить эту графику вверх/вниз?
Код AS1/AS2:
import flash.display.*;
 
function getLine(){			
	var containerWidh:Number = 300;
	var containerHeight:Number = 300;
	var borderWidt:Number = 1;
	var spriteWrap:Sprite = new Sprite();
 
	var innerContainer:Sprite = new Sprite();
	innerContainer.x = 0;
	innerContainer.y = 0;
 
	var line1:Shape = new Shape();
	line1.graphics.lineStyle(5, 0x6F4356, 1, false, StageScaleMode.SHOW_ALL, CapsStyle.ROUND);
	line1.graphics.moveTo(50, 5);
	line1.graphics.lineTo(50, 800);
	line1.graphics.endFill();
 
	var line2:Shape = new Shape();
	line2.graphics.lineStyle(5, 0x6F4356, 1, false, StageScaleMode.SHOW_ALL, CapsStyle.ROUND);
	line2.graphics.moveTo(200, 290);
	line2.graphics.lineTo(200, 300);
	line2.graphics.endFill();
 
	innerContainer.addChild(line1);
	innerContainer.addChild(line2);
	spriteWrap.addChild(innerContainer);	
 
	return spriteWrap;
}
 
var spriteWrap:Sprite = getLine();
var wrapForBitmap:Sprite = new Sprite();			
var drawBitmap:BitmapData = new BitmapData(300, 300, true, 0x00ffaa);
var goOnStage:Bitmap = new Bitmap(drawBitmap);
wrapForBitmap.graphics.beginBitmapFill(drawBitmap);
wrapForBitmap.graphics.lineStyle(1, 0x6F7E84);
wrapForBitmap.graphics.drawRect(0, 0, 300, 300);
wrapForBitmap.graphics.endFill();
wrapForBitmap.x = 10;
wrapForBitmap.y = 10;
 
drawBitmap.draw(spriteWrap, new Matrix(1, 0, 0, 1, 0, 0));
 
wrapForBitmap.addChild(goOnStage);
stage.addChild(wrapForBitmap);

Старый 23.09.2014, 21:00
Gerbert вне форума Посмотреть профиль Найти все сообщения от Gerbert
  № 2  
Ответить с цитированием
Gerbert
Banned
[+1 06.12.14]
[+1 18.12.14]
[+1 30.12.14]

Регистрация: Aug 2014
Сообщений: 461
Немного не понятно, что Вам нужно, но если нужно таскать картинку мышкой, то это не сложно.
Первым делом Вам нужно создать новый проект размером 600х600 и добавить любую понравившуюся
скаченную из гугла картинку БОЛЬШЕГО размера. Например 1200х1200.
Теперь учитесь делать драг картинки без нативного метода drag. Если не знаете как, то
поищите на форуме темы по слову drag и найдите нужную.
И вот когда у Вас получится, то делайте тоже самое, только для ректа, который Вы рисуете в bitmap.

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

Регистрация: Dec 2013
Сообщений: 34
Gerbert, под "нарисованной графикой" я имел ввиду графика в моем спрайте, созданная кодом . Спрайт больше по размерам чем Bitmap. И мне требуется Сдвинуть этот спрайт вверх/вниз/вправо/влево.

Старый 23.09.2014, 21:29
Gerbert вне форума Посмотреть профиль Найти все сообщения от Gerbert
  № 4  
Ответить с цитированием
Gerbert
Banned
[+1 06.12.14]
[+1 18.12.14]
[+1 30.12.14]

Регистрация: Aug 2014
Сообщений: 461
Это называется "scroll", если хотите научится сами, а этому обязательно нужно уметь,
то начните с простой картинки, так, как я уже описал выше. И уже потом переходите к
скролу bitmapData.

Говорю - загрузите картинку больше сцены и центрируйте её.
Затем узнавайте координаты клика мышки и прибавляйте их к координатам картинки
минус вектор разницы между началом координат картинки и клика мышки. Когда у Вас
получится, то Вы сможете сделать это уже для всего, в том числе и для игрового мира.

Старый 24.09.2014, 11:49
cleptoman вне форума Посмотреть профиль Отправить личное сообщение для cleptoman Найти все сообщения от cleptoman
  № 5  
Ответить с цитированием
cleptoman
 
Аватар для cleptoman

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
это называется: читаем справку
BitmapData#draw
BitmapData#copyPixels
Matrix
__________________
http://cleptoman.free-lance.ru
achivements: дважды благословлен на воровство. осеяный благодатью

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

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

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


 


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


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