I posted this on my blog (http://www.leifwells.com), but I thought I'd try giving the Flashcoders list a shot at this, too.
We are trying to get a tool tip to work with a DataGrid component. And failing. The project we are doing is a rather complex AS 2.0 project, so I created this rather simple AS 1.0 version as a stand-alone example of our problem. (you'll note that the "setInterval()" and "clearInterval()" calls are commented to prove that they are not the problem) The FLA file with the code (below) can be downloaded at: http://www.leifwells.com/zip/dg_problem.zip THE PROBLEM: when you roll over the text in the cell a "itemRollOut" event is getting fired a "itemRollOver" is also fired -- that's when the cursor changes to the i-beam cursor. For instance, if you test the FLA file and you move your cursor over the area to the right of the "price" column, you'll see the tool tip pop up just fine. But then try moving your cursor over the price or the name. Keep moving it across the text. What a mess! If anyone has experience with this issue or has issues with the way that we are trying to accomplish this, feel free to shout. //code dataGrid_dg.setSize(300, 100); dataGrid_dg.move(5, 5); trace_ta.setSize(300, 200); trace_ta.move(5, 110); clear_pb.move(5, 320); var clickListener:Object = new Object(); clickListener.click = function() { trace_ta.text = ""; } clear_pb.addEventListener("click", clickListener); var dgNameColumn:mx.controls.gridclasses.DataGridColumn= new mx.controls.gridclasses.DataGridColumn("name"); dataGrid_dg.addColumn(dgNameColumn); var dgPriceColumn:mx.controls.gridclasses.DataGridColumn = new mx.controls.gridclasses.DataGridColumn("price"); dataGrid_dg.addColumn(dgPriceColumn); dataGrid_dg.getColumnAt(0).width = 200; dataGrid_dg.getColumnAt(1).width = 100; dp = new Array(); for(var i:Number = 0; i< 25; i++){ //_root.dp.push({name: "MMMMMM", price: "$9.99"}) dp.addItem({name: i + " M M M M M M M M M M M M M M M M M M M", price: "$9.99"}); } dataGrid_dg.dataProvider = dp; var rowRollOver = new Object(); rowRollOver.itemRollOver = function(event_obj:Object) { //clearInterval(_root.toolTipInterval); var name:String = event_obj.target.getItemAt(event_obj.index).name; traceText("itemRollOver: name: " + name); if(name != undefined){ trace("rollOver"); var xvar:Number = event_obj.target._x + 10; var yvar:Number = event_obj.target._y + ((event_obj.index + 1) * 20); var tt_fmt:TextFormat = new TextFormat(); tt_fmt.font = "Arial" if(!_root.toolTip_tf){ _root.createTextField("toolTip_tf", 10000, xvar, yvar, 20, 20); toolTip_tf = _root.toolTip_tf; toolTip_tf.border = true; toolTip_tf.background = true; toolTip_tf.backgroundColor = 0xF9FCEC; toolTip_tf.autoSize = true; }else{ toolTip_tf._x = xvar; toolTip_tf._y = yvar; } toolTip_tf.text = name; //toolTip_tf.embedFonts = true; toolTip_tf.setTextFormat(tt_fmt); toolTip_tf._visible = false; showToolTip(_root.toolTip_tf); //_root.toolTipInterval = setInterval(showToolTip, 2000, _root.toolTip_tf); } } dataGrid_dg.addEventListener("itemRollOver", rowRollOver); rowRollOut = new Object(); rowRollOut.itemRollOut = function(event_obj:Object) { var name:String = event_obj.target.getItemAt(event_obj.index).name; if(name != undefined){ traceText("rollOUT: " + event_obj.target.getItemAt(event_obj.index).getName()); removeToolTip(); }else{ //clearInterval(_root.toolTipInterval); } } dataGrid_dg.addEventListener("itemRollOut", rowRollOut); function showToolTip(tt) { traceText("showing ToolTip"); tt._visible = true //clearInterval(_root.toolTipInterval); } function removeToolTip() { traceText("removing ToolTip"); toolTip_tf._y = -100; toolTip_tf.text = ""; toolTip_tf._visible = false; //destroyObject("toolTip_tf"); } function traceText(str:String) { trace_ta.text += "\r" + str; trace_ta.vPosition = trace_ta.maxVPosition; trace(str); } stop(); _______________________________________________ Flashcoders mailing list Flashcoders@chattyfig.figleaf.com http://chattyfig.figleaf.com/mailman/listinfo/flashcoders