Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Странное поведение при масштабировании (http://www.flasher.ru/forum/showthread.php?t=202648)

temp 30.07.2013 15:50

Странное поведение при масштабировании
 
Доброго дня. Столкнулся с проблемой
есть код
Код AS3:

//примерно
package
{
  public class someClass
  {
 
      private var container:MovieClip=new MovieClip();
      private var btmp:Bitmap=new Bitmap();//загружаю из вне удачно на сцену добавляется
      //btmp width=1000, height=1000
 
      public function someClass()
      {
        addChild(container);
        container.addChild(btmp);
 
        trace(container.width+", "+btmp.width);//1000, 1000
 
        container.scaleX=1.5;
        trace(container.width+", "+btmp.width)//1500, 1000
      }
  }
}

хотя я расчитывал увидеть 1500, 1500 может кто подскажет в чем дело

Спасибо заранее

tsarapkabel 30.07.2013 16:46

Создайте матрицу, отскейлите её, затем в BitmapData.draw передайте вторым параметром.
http://stackoverflow.com/questions/9...mapdata-object

FlashRus 31.07.2013 09:01

Код AS3:

container.scaleX=1.5;
trace(container.width+", "+btmp.width)//1500, 1000

а как-же scaleY?

Wolsh 31.07.2013 09:43

А с какой стати битмап то должен свою ширину поменять? Вы растянули контейнер, то есть систему координат. Контейнер во внешней системе координат стал 1500, но его то внутренняя система координат только отмасштабировалась.
Когда вы географическую карту увеличиваете, расстояния между городами тоже должны увеличиться?
Вы меняете показ объекта, а не объект. Увеличить ширину битмапа значит добавить энное количество пикселей в битмап. Если вы будете растягивать жвачку, она не превратится в двухтонный шар — новые частицы жвачки в ней не появятся))

temp 31.07.2013 13:18

Цитата:

Сообщение от Wolsh (Сообщение 1142407)
А с какой стати битмап то должен свою ширину поменять? Вы растянули контейнер, то есть систему координат. Контейнер во внешней системе координат стал 1500, но его то внутренняя система координат только отмасштабировалась.
Когда вы географическую карту увеличиваете, расстояния между городами тоже должны увеличиться?
Вы меняете показ объекта, а не объект. Увеличить ширину битмапа значит добавить энное количество пикселей в битмап. Если вы будете растягивать жвачку, она не превратится в двухтонный шар — новые частицы жвачки в ней не появятся))

Благодарю! лопатил кучу инфы вчера и как раз подобное зародилось в голове. Ваше объяснение как раз устаканило понимание происходящего) Еще раз спасибо!

Добавлено через 1 минуту
Цитата:

Сообщение от FlashRus (Сообщение 1142406)
Код AS3:

container.scaleX=1.5;
trace(container.width+", "+btmp.width)//1500, 1000

а как-же scaleY?

Ну по y тоже скейл, просто для аппроксимации задачи привел такой пример куцый

с У ситуация таже

Добавлено через 3 минуты
как советовал tsarapkabel делаю эксперименты с матрицей.


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

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