PDA

Просмотр полной версии : [Papervision] Облако тегов . Papervision3d


Фломастер
14.03.2012, 03:19
Использую облако тегов, созданное на paperVision3d.

Там суть проста - текствоое поле отрисовывается в BitmapData, которая натягивается на Particles.

Я увеличил шрифт текста, но при рендере он стал обрезаться. Выглядит, как будто объект, на который натягивается картинка имеет фиксированную ширину пикселей 100. Как мне избавиться от такого обрезания?

Нижде кусок кода, где строится облако тегов.

tf = new TextField();
tformat = tf.getTextFormat();
tformat.color = 0xf4962f;
tformat.font = "Times New Roman";
//tformat.size = 30;
tf.defaultTextFormat = tformat;
tf.text = this.tags[i];
wid = tf.textWidth + 4;
hei = tf.textHeight + 4;
bm = new BitmapData(wid, hei, true, 33554431);
bm.draw(tf);

d = Math.acos((2 * (i + 1) - 1) / this.tag_num - 1);
a = Math.sqrt(this.tag_num * Math.PI) * d;
bm_pm = new BitmapParticleMaterial(bm);
bm_pm.interactive = true;
bm_pm.smooth = this.smoothing;
particle = new Particle(bm_pm, this.scale, 0, 0, 0);
particles = new Particles();
particles.addParticle(particle);
particles.x = this.radius * Math.cos(a) * Math.sin(d);
particles.y = this.radius * Math.sin(a) * Math.sin(d);
particles.z = this.radius * Math.cos(d);
particles.alpha = 0;
particles.useOwnContainer = true;
particles.autoCalcScreenCoords = true;
particles.addEventListener(InteractiveScene3DEvent.OBJECT_OVER, this.objectOverHandler);
particles.addEventListener(InteractiveScene3DEvent.OBJECT_OUT, this.objectOutHandler);
particles.addEventListener(InteractiveScene3DEvent.OBJECT_PRESS, this.objectClick);
tagContainer.addChild(particles);

Добавлено через 38 часов 47 минут

tf.width = tf.textWidth;
tf.height = tf.textHeight;

решило проблему.