2015-04-28 2 views
0

Я пытаюсь создать интерактивную карту с Adobe Flash CC через холст HTML5. Основная идея: вы наведите указатель мыши на объект на карте, справа появится текстовое поле с соответствующей информацией. Дело в том, что мне удалось создать текстовое поле, но каждый раз, когда я наводил курсор на текстовое поле, снова и снова появляется сверху, и текст становится все толще каждый раз. Как я могу удалить текст, прежде чем добавлять его каждый раз? Может быть, у вас есть другие предложения? Вот код:JavaScript/HTML canvas: очистка текстового поля

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 (содержание); прежде чем добавлять его, но он не работает.

Любая помощь оценена!

+0

Вы хотите очистить свой div или удалить его? – Pleasure

+1

вы создаете div не текстовое поле – YourFriend

ответ

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); 
} 

Вам просто нужно хранить созданный элемент в переменной.

Смежные вопросы