PDA

Просмотр полной версии : Отображение объекта на сцене.


D1KTAT0R
07.06.2012, 17:49
Всем привет!
Есть у меня объект наследуемый от MovieClip и есть bitmap.
Как можно привязать этот битмап к этому объекту, чтобы при добавлении его на сцену он рисовался?
Я мог неправильно сформулировать, заранее извиняюсь, если так то спрашивайте - дополню как смогу.
Среда FlashDevelop

samana
07.06.2012, 18:04
Нужно внедрить битмапу в класс вашего мувика, и просто добавить её в этот мувик addChild.
package
{
import flash.display.Bitmap;
import flash.display.MovieClip;

public class MyClass extends MovieClip
{
[Embed(source = "../lib/image.jpg")]
private var ImageClass:Class;
private var bm:Bitmap = new ImageClass();

public function MyClass()
{
addChild(bm);
}
}
}

изображение лежит в папке lib проекта.

D1KTAT0R
07.06.2012, 18:07
samana, а если не сложно - самый простой примерчик с реализацией только этой фичи можно? не сочтите за наглость ))) буду очень благодарен.

in4core
07.06.2012, 18:11
class Extended extends MovieClip

private var b:Bitmap = YourBitmapClass()

public function Extended () { this.addChild(b) }

DaFive
07.06.2012, 18:12
Точнее, при добавлении чего на сцену что должно рисоваться? Битмап должен добавляться внутрь клипа? Где лежит битмап?

D1KTAT0R
08.06.2012, 10:12
samana, делал аналогичным путем - не вышло, знаю что в какой то мелочи затык но видимо смотрю и не вижу. Ошибок не выдает но рисунок на сцене не видно.
DaFive, Суть - привязать рисунок к классу, чтобы при создании экземпляра этого класса на сцене появлялся рисунок. Битмап должен добавляться я так понимаю внутри класса наследуемого от клипа. Лежит в папке LIB. Приём samana в общем то верен, но почему то у меня не сработал.

[Embed(source = "../lib/image.jpg")]
private var ImageClass:Class;
private var bm:Bitmap = new ImageClass();

public function MyClass()
{
addChild(bm);
}

Ну и я не понял каким образом компилятор понимает что именно этот битмап надо связывать с переменной ImageClass?

samana
08.06.2012, 14:06
Даже не знаю, почему у вас не получается. Посмотрите исходник проекта FD, там всё работает.

Ну и я не понял каким образом компилятор понимает что именно этот битмап надо связывать с переменной ImageClass?
Обратите внимание, что после строки внедрения не стоит знака точки с запятой. По этому как я понимаю, компилятор читает это как одну команду
[Embed(source = "../lib/image.jpg")] private var ImageClass:Class;
Могу ошибаться.

D1KTAT0R
08.06.2012, 14:24
Понял где ошибка. Пример очень помог и теперь все встало на свои места. Спасибо!
Я в конструкторе главного класса не добавлял объект а просто создавал его, думая что при создании сработает ЕГО конструктор в котором прописано добавление битмапа. Наивно, но хз - почему то так показалось логичным.
Еще раз хочу всех поблагодорить за участие и помощь.