Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   картинка на сцене Shape или Bitmap? (http://www.flasher.ru/forum/showthread.php?t=147253)

AlexDesinger 30.11.2010 12:04

картинка на сцене Shape или Bitmap?
 
Здравствуйте у меня вопрос, если я размещаю картинку на сцене вручную из библиотеки, то простой трейс выводит -
Код AS3:

trace(this.getChildAt(0) //[object Shape])

Но в инспекторе свойств это явно картинка и должна быть либо Bitmap, либо BitmapData.
Как быть в этой ситуации, как найти свойство .bitmapData у картинки, добавленной вручную?

dimarik 30.11.2010 12:29

Отрисуйте его BitmapData#draw().

cleptoman 30.11.2010 12:38

да вопрос то не в этом, а в том, что размещенную картинку на сцене плеер расценивает как шейп. у меня такое было в CS3. я недолго почесал репу и переделал все по другому )

nOobCrafter 30.11.2010 12:40

dimarik зачем? если точка регистрации не 0, 0 а где нить в отрицательной области то при отрисовке будут проблемы.
AlexDesinger при размещении вручную, получается шейп с битмапфил если не ошибаюсь, что бы была битмапа пролинкуйте в либе свою картинку, base class будет, BitmapData, а на сцене будет лежать битмапа.

Hidest 30.11.2010 13:02

При BitamapData # draw() нет никаких проблем, какими бы ни были координаты... матрица трансформации на это дело есть.

nOobCrafter 30.11.2010 13:06

Hidest вообщем то да, а если картинок туча и у всех разные кординаты, забивать их в массив и в цикле рисовать? не проще ли сразу задать линкейдж группе и не париться?
имхо отрисовку можно делать, но телодвижений надо сделать больше, а зачем?)

AlexDesinger 30.11.2010 13:44

Цитата:

AlexDesinger при размещении вручную, получается шейп с битмапфил если не ошибаюсь, что бы была битмапа пролинкуйте в либе свою картинку, base class будет, BitmapData, а на сцене будет лежать битмапа.
Да, не ошибаетесь, именно шейп с заливкой из битмапфил, я посмотрел, к сожалению у Shape нет возможности достучаться из его битмапфил до битмапы, поэтому сделал линк для картинок. Но еще пришлось насильно приводить к типу Битмап, поскольку as3 упорно считал ее DisplayObject и не находил свойство bitmapData

Цитата:

var up_bm:Bitmap = button_mc.up_mc.getChildAt(0).bitmapData;// Line 29 1119: Access of possibly undefined property bitmapData through a reference with static type flash.display:DisplayObject.
только вот так получилось -
Код AS3:

var up_bm:Bitmap = button_mc.up_mc.getChildAt(0) as Bitmap;
trace(up_bm.bitmapData)//[object up_png]


zuxul 30.11.2010 14:38

Еще один ньюанс с памятью.
При создании такого битмапа, его bitmapData будет создаваться заново из прилинкованной картинки (BitmapData#clone), что не очень хорошо когда нужно, например, создать несколько Bitmap-ов.
Как заставить Flash IDE не дублировать bitmapdate я так и не нашел...

cleptoman 30.11.2010 15:27

а она и не будет дублироваться, если вы одну и ту же битмапдату будете юзать в нескольких битмапах. скажу больше..изменив ее (например фильтром) это примениться ко всем битмапам с ней (на счет шейпов с использованием заливки битмапдатой точно не скажу, но скорее всего тоже).

zuxul 30.11.2010 16:53

cleptoman, а Вы мне объясните, как во Flash IDE юзать одну и ту же битмапдату?


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

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