PDA

Volledige versie bekijken : tooltip naar links bij overschrijden stage


latino
%Europe/Berlin %685 %2005, 17:27
hallo ik heb het volgende nagemaakt:

ik laad fototjes in. Als je met je muis erover gaat dan komt er een tooltip. Nu wil ik dat als de tooltipbox de stage gaat verlaten/overschrijden dat deze binnen de stage blijft. Ik dacht slim te zijn maar hoe ik het nu doe lukt niet (zie code commentaar)

mijn creatie: http://www.deepbeats.nl/v4/news_content.html
mijn voorbeeld: http://www.udc.nl

function showToolTip(tekst:String){

attachMovie("tooltip","tooltext_mc",9999);

tooltext_mc.tooltip_txt.autoSize="left";
tooltext_mc.tooltip_txt.text = tekst;
var tw=tooltext_mc.tooltip_txt._width;
tooltext_mc.bg_rgt._x= tw+3.5;
tooltext_mc.bg_mid._width= tw;

tooltext_mc.onEnterFrame = function(){

if(_ymouse < 34){
tooltext_mc._y = _ymouse + tooltext_mc._height;
}else {
tooltext_mc._y = _ymouse - 10;
}
if( tooltext_mc._x > Stage.width ){////dit dacht ik te doen
tooltext_mc._x = Stage.width - tooltext_mc._width;
}
if(_xmouse > 340){
tooltext_mc._x = _xmouse - tooltext_mc._width - 10;
}else{
tooltext_mc._x = _xmouse + 20;
}
};
}

Roenes
%Europe/Berlin %688 %2005, 17:31
Je houd in je ifje geen rekening met de breedte van je tooltip. Nu check je eigenlijk of de muis op het rechterrandje van je flashmovie staat. Maar als die een 10 pixels van de rand af staat, zal je tooltip buiten beeld verdwijnen. Je zult dus de plaats waar de muis is + de breedte van de tooltip moeten checken met Stage.width. Als die 2 samen groter zijn als Stage.width, moet je gaan rekenen hoeveel je de tooltip naar links moet verplaatsen :)

latino
%Europe/Berlin %717 %2005, 18:12
hmmm..ik heb nu dit maar links geeft ie het goed weer en rechts gaat ie als een gek flipperen!(hij doet wel wat ik wil) : check: http://www.deepbeats.nl/v4/news_content.html

function showToolTip(tekst:String){

attachMovie("tooltip","tooltext_mc",9999);

tooltext_mc.tooltip_txt.autoSize="left";
tooltext_mc.tooltip_txt.text = tekst;
var tw=tooltext_mc.tooltip_txt._width;
tooltext_mc.bg_rgt._x= tw+3.5;
tooltext_mc.bg_mid._width= tw;

tooltext_mc.onEnterFrame = function(){

if(_ymouse < 34){
tooltext_mc._y = _ymouse + tooltext_mc._height;
}else {
tooltext_mc._y = _ymouse - 10;
}
if( tooltext_mc._x + tooltext_mc._width > Stage.width ){
tooltext_mc._x = Stage.width - tooltext_mc._width - 10;
}else{
tooltext_mc._x = _xmouse + 20;
}
};
}

Roenes
%Europe/Berlin %733 %2005, 18:35
Dat flipperen komt door je eerste else. Die treedt in werking, daarna wordt de check van 2e if gedaan en treedt die weer in werking. Je zult het allemaal samen moeten nemen op de volgende manier:

tooltext_mc.onEnterFrame = function()
{
var x;
var y;
//ypos bepalen
if (_ymouse < 34) y = _ymouse + tooltext_mc._height;
else y = _ymouse - 10;
//xpos bepalen
if (tooltext_mc._x + tooltext_mc._width > Stage.width) x = Stage.width - tooltext_mc._width - 10;
else x = _xmouse + 20;
//tooltip plaatsen
tooltext_mc._x = x;
tooltext_mc._y = y;
};

latino
%Europe/Berlin %378 %2005, 10:04
ik heb de oplossing al:

tooltext_mc.onEnterFrame = function(){

if(_ymouse < 34){
tooltext_mc._y = _ymouse + tooltext_mc._height;
}else {
tooltext_mc._y = _ymouse - 10;
}
if( _xmouse + tooltext_mc._width > Stage.width ){
tooltext_mc._x = Stage.width - tooltext_mc._width - 10;
}else{
tooltext_mc._x = _xmouse + 20;
}
};

wat bold is stond eerst tooltext_mc._x maar moet natuurlijk _xmouse zijn

check: http://www.deepbeats.nl/v4/news_content.html