PDA

Volledige versie bekijken : Probleem in as of iets anders buttons doen het niet...


ThE_GrIb
%Europe/Berlin %911 %2005, 22:53
Hoi mede flashers, zou iemand bereid zijn dit .fla-tje te bekijken de buttons behoren een text ballon te geven maar dit werkt niet en kan de fout niet vinden.


Mijn dank is groot

Gribber

tekstballon.fla (http://www.xs4all.nl/~gribber/tekstballon.fla)

SaphuA
%Europe/Berlin %915 %2005, 22:57
waneer je de interval maakt roep je de functie aan met een hoofdletter 'showTip', terwijl de functie zelf geen hoofdletter heeft 'showtip'.

SaphuA
%Europe/Berlin %917 %2005, 23:01
Ohja btw, even een tip:
Je kunt de functies ook samenvoegen:
b1.onRollOut = b2.onRollOut = function(){
hidetip();
}

Zelfde geld voor de andere functies, maar dan moet je even een onderscheid maken zodat je de juiste tekst kan weergeven. Dit kun je bijvoorbeeld doen met de naam van een button, en dan de tekst uit een object halen oid.

ThE_GrIb
%Europe/Berlin %932 %2005, 23:22
Ohja btw, even een tip:
Je kunt de functies ook samenvoegen:
b1.onRollOut = b2.onRollOut = function(){
hidetip();
}

Zelfde geld voor de andere functies, maar dan moet je even een onderscheid maken zodat je de juiste tekst kan weergeven. Dit kun je bijvoorbeeld doen met de naam van een button, en dan de tekst uit een object halen oid.

THx voor de hints ik ga even kijken of hij zo wel wil gaan werken.

Edit... ok dat was idd de laatste hoofd letter had de rest er al uitgehaald maar nu het volgende kijk maar eens hier het gaat toch niet helemaal goed.

test.swf (http://www.xs4all.nl/~gribber/tekstballon.swf)


Als je wilt natuurlijk he.

Alvast bedankt.

SaphuA
%Europe/Berlin %306 %2005, 08:21
tooltip._visible = false;
//--
var tipint;
var buttons = 8;
var buttonNames = {};
buttonNames.b1 = "Knopje 1";
buttonNames.b2 = "Knopje 2";
buttonNames.b3 = "Knopje 3";
buttonNames.b4 = "Knopje 4";
buttonNames.b5 = "Knopje 5";
buttonNames.b6 = "Knopje 6";
buttonNames.b7 = "Knopje 7";
buttonNames.b8 = "Knopje 8";
for (var i = 1; i<buttons+1; i++) {
_root["b"+i].onRollOut = _root["b"+i].onDragOut=function () {
hidetip();
};
_root["b"+i].onRollOver = _root["b"+i].onDragOver=function () {
tipint = setInterval(showtip, 500, this._name);
};
}
//--
function showtip(tipcode) {
tooltip.tiptext.text = buttonNames[tipcode];
tooltip._x = _root._xmouse;
tooltip._y = _root._ymouse;
tooltip._visible = true;
_root.onMouseMove = function() {
tooltip._x = _root._xmouse;
tooltip._y = _root._ymouse;
updateAfterEvent();
};
clearInterval(tipint);
}
function hidetip() {
tooltip._visible = false;
delete _root.onMouseMove;
clearInterval(tipint);
}


Dit zou het moeten doen :)

Ohja btw, je had in je interVal ook nog eens een timer (die variable count), wat dus beetje dubbelzinnig was :) Je kunt net zo goed de interval 5x later gecalled laten worden.

ThE_GrIb
%Europe/Berlin %410 %2005, 10:51
Ok die AS van jou die werkt....prima mooi.... maar omdat ik lerende ben zou ik ook willen weten wat er in de code die ik gezet heb niet goed was... of was dat wat je zei over die variable count (interval 5 x)

SaphuA
%Europe/Berlin %531 %2005, 13:45
Ok, ik zal mijn code even stap voor stap uitleggen..
var buttonNames = {};
buttonNames.b1 = "Knopje 1";
buttonNames.b2 = "Knopje 2";
buttonNames.b3 = "Knopje 3";
buttonNames.b4 = "Knopje 4";
buttonNames.b5 = "Knopje 5";
buttonNames.b6 = "Knopje 6";
buttonNames.b7 = "Knopje 7";
buttonNames.b8 = "Knopje 8";
Deze code maakt een object, waarin de teksten voor de buttons staan. Het handige is, dat de namen van buttons gebruik worden, zodat je waneer je de bijpassende tekst van een button wilt vinden, alleen naar de naam hoeft te kijken in het object.
for (var i = 1; i<buttons+1; i++) {
_root["b"+i].onRollOut = _root["b"+i].onDragOut=function () {
hidetip();
};
_root["b"+i].onRollOver = _root["b"+i].onDragOver=function () {
tipint = setInterval(showtip, 500, this._name);
};
}
Deze for-loop doet bijna hetzelfde als jou oude code, alleen is het nu 1000 regels korter. Je kunt een for-loop gebruikn om dingen te herhalen, maar ook om dezelfde dingen op verschillende voorwerpen uit te voeren. Wat het dus doet is elke button dezelfde functies geven. Hier is een stukje test-code, kijk naar het resultaat om het te snappen:
var buttons = 8;
for (var i = 1; i<buttons+1; i++) {
trace("Dit is button: b"+i);
}
Het eerste stukje is het aanroepen van de 'hidetip' functie, hier zat al de eerste fout van jou code; namenlijk dat je er geen rekening mee had gehouden dat de gebruiker ook op de button kan klikken en er dan vanaf scrollen. Hiervoor is onDragOut nodig.

Het tweede stukje geld voor waneer de muis op of over de button komt. Hier heb ik kleine dingetjes veranderd. Als eerst heb ik de interval 500 gemaakt, je had namenlijk in de functie een tellertje staan (met count), er werdt eerst 5x geteld voordat de opdracht werdt uitgevoerd. Wat ik nu gedaan heb, is het tellertje verwijderd en gewoon de functie 5x later aangeroepen. (5x100 = 500)

Verder heb ik de parameter this._name meegegeven naar de functie, dit is dus de naam van de button waarop geklikt wordt. Hier kom ik zo op terug.
function showtip(tipcode) {
tooltip.tiptext.text = buttonNames[tipcode];
tooltip._x = _root._xmouse;
tooltip._y = _root._ymouse;
tooltip._visible = true;
_root.onMouseMove = function() {
tooltip._x = _root._xmouse;
tooltip._y = _root._ymouse;
updateAfterEvent();
};
clearInterval(tipint);
}
Ok, dit is dus de functie dat alles laat zien. De functie wordt aangeroepen met de parameter 'tipcode', wat de naam van de button is wat ik zonet al zei.

Dan komen we bij een belangrijke verandering; namenlijk de 2e regel. Wat ik hier gedaan heb, is de tekst veranderen volgens de naam van de button. Wat het doet is kijken of de naam van de button (b1 t/m b8) voorkomt in het object (en dat doen ze allemaal! jeuh) en dus de juiste tekst weergeven.

Dit is ongeveer het idee :)
Hoop dat je er iets van geleerd hebt.
Groeten

ThE_GrIb
%Europe/Berlin %366 %2005, 09:47
Saphua dan kje voor de uitleg ik heb er zeker wat aan gehad, al is het voor mij nog wel erg moeilijk. Maar het zal ooit wel eens komen, ook deze code heb ik weer uitgeprint om hem een aandachtig in een lijst door te kunnen nemen.

Thx

ThE_GrIb