我一直在尝试通过HTML5画布使用Adobe Flash CC创建交互式地图。主要思想是:鼠标在地图上的对象上,右侧显示带有相应信息的文本框。问题是,我已经设法创建了一个文本框,但每次鼠标悬停时,文本框顶部都会一遍又一遍地显示,文本每次都变得越来越胖。如何在每次添加文本之前删除文本?也许你有其他建议吗? 这是代码:
function makeText(x, y, w, h, htmlText) {
// create and populate element
stage.removeChild(content);
stage.update();
var e = document.createElement("div");
e.style.fontSize = "14px";
e.style.fontFamily = "arial, verdana, sans-serif";
e.style.visibility = "hidden";
e.style.position = "absolute";
e.style.left = 0;
e.style.top = 0;
e.style.width = w + "px";
e.style.height = h + "px";
e.style.overflow = "auto";
e.style.overflowX = "hidden";
e.innerHTML = htmlText;
document.body.appendChild(e);
var content = new createjs.DOMElement(e);
content.x = x;
content.y = y;
return stage.addChild(content);
}
以下是我如何调用该函数:
function fl_MouseOverHandler_5(){
var canvas;
var text;
var count = 0;
var kauno_pr = "text";
makeText(400,300,200,200,kauno_pr);
}
我也尝试过添加stage.removeChild(content);在添加它之前,它似乎不起作用。
任何帮助表示赞赏!
答案 0 :(得分:1)
这样的事情应该有效:
var previousElement;
function fl_MouseOverHandler_5(){
var canvas;
var text;
var count = 0;
var kauno_pr = "text";
if(previousElement){
stage.removeChild(previousElement);
}
previousElement = makeText(400,300,200,200,kauno_pr);
}
您只需将创建的元素存储在变量中。