2010-12-30 5 views
0

Я пытаюсь нарисовать строку внутри холста. Текст и позиция строки изменяются при нажатии на другие. Для Поступая таким образом, я создаю TextFields, которые я добавил в спрайт, который я добавил к Canvas:Draw String in Canvas

canvas.rawChildren.addChild(spriteNombres); 

В первый раз все работает нормально, но когда я нажимаю на дне, он не обновляется и появляется старые текстовые поля и новые. Я не могу удалить старые, я пытаюсь удалить removeAllChildren, а также пытаюсь удалить один за другим с помощью removeChildrenAt. Я не знаю, что я делаю что-то неправильно или, может быть, это не лучший способ.

Любые предложения ???

Заранее спасибо.

Я также пытаюсь создать bitmapdata и рисовать в спрайте внутри прямоугольника.

var channelName: TextField = new TextField(); 
channelName.text = channelNames[displaySequence[channel]]; 
if (channelName.text != null) { 

channelName.antiAliasType = AntiAliasType.NORMAL; 
var theWidth,theHeight:int; 
theWidth=0; 
theHeight=20; 

var bitmapdata:BitmapData = new BitmapData(theWidth, theHeight, true, 0x000000); 
bitmapdata.draw(channelName);    
spriteNombres.graphics.beginBitmapFill(bitmapdata); 
spriteNombres.graphics.drawRect(offsetX, offsetY, theWidth, theHeight); 
    spriteNombres.graphics.endFill();        

}

+0

Насколько я понимаю, вы не следует добавлять ничего в контейнер rawChildren. Для этого используйте другой тип контейнера. – sberry

ответ

1

Не уверен, но есть две вещи, которые, возможно, должны быть перепроверены в сценарии.

Во-первых, вы используете graphics.clear() перед перерисованием? в противном случае это может стать грязным. Во-вторых, я думаю, вам нужно передать матрицу в метод graphics.beginBitmapFill, который должен иметь tx, ty, переведенный так же, как offsetX, offsetY (для тестирования, а не 100% об этом)

+0

Он работает, я использую матрицу для установки offsetX и offsetY и добавляю матрицу в качестве еще одного параметра beginBitmapFill.Thanks много! – alicia