【问题标题】:Charts itemrenderers in flex 3flex 3中的图表itemrenderers
【发布时间】:2009-09-21 05:25:17
【问题描述】:

谁能告诉,如何在图表数据提示中添加图像?

【问题讨论】:

    标签: actionscript-3 apache-flex flex3


    【解决方案1】:

    你需要创建一个datatip的子类并覆盖updateDisplayList函数。

    这是我所做的:

        override protected function updateDisplayList(w:Number, h:Number):void {
            super.updateDisplayList(w, h);
            this.setStyle("textAlign","left");
            this.setStyle("color", "0xCCCCCC");
    
            if (this.numChildren > 1)
                this.removeChildAt(1);
    
            numLines = (data.displayText as String).split("<br").length;
    
            var g:Graphics = graphics; 
            g.clear();  
            var m:Matrix = new Matrix();
            m.createGradientBox(w+60,h+numLines*25,0,0,0);
            g.beginGradientFill(GradientType.LINEAR,[0x00FF00,0xFFFFFF],
                [.1,1],[0,255],m,null,null,0);
            g.drawRect(-30,0,w+60,h+numLines*25);
            g.endFill();
    
            // load current image
            var imageFile:File = File.applicationStorageDirectory.resolvePath(Constants.TINY_IMG_PATH + data.item.name);
            var urlLoader:URLLoader = new URLLoader( );
            urlLoader.dataFormat = URLLoaderDataFormat.BINARY;
            urlLoader.addEventListener(Event.COMPLETE, onLoadingComplete );
            urlLoader.load( new URLRequest(imageFile.nativePath) );
        }
    
        private function onLoadingComplete( e: Event ):void
        {
            var dispLoader: Loader = new Loader( );
    
            dispLoader.contentLoaderInfo.addEventListener( Event.COMPLETE, onParsingComplete);
            dispLoader.loadBytes( e.currentTarget.data );
        }
    
        private function onParsingComplete(e:Event):void {
    
            var container:Sprite = new Sprite();
            this.addChild(container);
            container.y = numLines*15 + 10;
    
            var _bitmap:Bitmap = new Bitmap((e.currentTarget.content as Bitmap).bitmapData);
            container.graphics.beginBitmapFill(_bitmap.bitmapData, null, false, true);
            container.graphics.drawRect(0, 0, _bitmap.width, _bitmap.height);
            container.graphics.endFill();
        }
    

    享受

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-04
      • 1970-01-01
      • 1970-01-01
      • 2012-03-08
      • 1970-01-01
      相关资源
      最近更新 更多