Hi guys
I'm sure you gurus can help me out here
I'm pretty new to AS and developing a chart. My problem now is: how can I add simple text to the drawing :shifty:?
As the coding for the chart is already rather complex, I've made a sample script to play around with.
My empty MyChartTest.fla calls MyChartTest.as (properties):
Code:package { import flash.display.Sprite; public class MyChartTest extends Sprite { public function MyChartTest() { var myChart:MyChart = new MyChart(); addChild(myChart); myChart.x = stage.stageWidth / 2; myChart.y = stage.stageHeight / 2; } } }
The class MyChart draws the circle:
I have now a nice green circleCode:package { import flash.display.Shape; public class MyChart extends Shape { private var _r:uint = 120; private var _okColor:uint = 0x33CC00; public function MyChart() { with (graphics) { lineStyle(2); beginFill(_okColor, 0.9); drawCircle(0, 0, _r); endFill(); } } } }Let's say, I want to add my text centered in the lower part of the circle, how would I do that?
OK, this would be a class for drawing a sample test:
if I extend MyChartTest.as to also draw my text....Code:package { import flash.display.Sprite; import flash.display.LoaderInfo; import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.text.TextFormat; public class ChartTextTest extends Sprite { private var _MemText:TextField; public function ChartTextTest() { configureMemText(); _MemText.appendText("blabla"); } private function configureMemText():void { _MemText = new TextField ; _MemText.autoSize = TextFieldAutoSize.LEFT; _MemText.background = true; _MemText.border = false; var format:TextFormat = new TextFormat ; format.font = "Verdana"; format.color = 0xFF0000; format.size = 12; format.underline = false; format.bold = true; _MemText.defaultTextFormat = format; addChild(_MemText); } } }
I get my text in the upper left corner of the stage... I just have the feeling that this is not the right way anyway... It would be ok for placing a title or so, but not text belonging to the chart. The drawing of the text should somehow be part of my charting class - not an 'add on'...Code:package { import flash.display.Sprite; public class MyChartTest extends Sprite { public function MyChartTest() { var myChart:MyChart = new MyChart(); addChild(myChart); myChart.x = stage.stageWidth / 2; myChart.y = stage.stageHeight / 2; var myText:ChartTextTest = new ChartTextTest(); // added addChild(myText); // added } } }
when I add the lines
to the MyChart class, I get the error "1180: Call to a possibly undefined method addChild." :sick:Code:var myText:ChartTextTest = new ChartTextTest(); addChild(myText);
Can I have a class extend Shape AND Sprite?Code:package { import flash.display.Shape; import flash.display.Sprite; // added public class MyChart extends Shape { private var _r:uint = 120; private var _okColor:uint = 0x33CC00; public function MyChart() { with (graphics) { lineStyle(2); beginFill(_okColor, 0.9); drawCircle(0, 0, _r); endFill(); } var myText:ChartTextTest = new ChartTextTest(); // added addChild(myText); // added } } }
How would you guys do that? What would be best practice?
Thanks a lot
gsub



Let's say, I want to add my text centered in the lower part of the circle, how would I do that?
Reply With Quote