Avatar billede marrix Juniormester
18. juni 2004 - 08:22 Der er 16 kommentarer og
2 løsninger

En rollover "alt"-tekst til et MC, kan man det på en nem måde?

Hej eksperter

...så'r jeg på den igen ;)

Jeg vil gerne have knyttet en "alt"-tekst til et MC, sådan som det fungerer på en internetside:

<img src="Grafik/dorte5.jpg" alt="En beskrivelse af dette billede">

...altså når man "rollover" MC'et, skal der dukke et lille gult felt op med en eller anden relevant beskrivende tekst.

Findes der en nem måde - specielt med henblik på dette? Eller skal jeg virkelig gå den noget mere tunge vej, og selv arrangere hele dynen?

Venligst, marianne
Avatar billede thulstrup Nybegynder
18. juni 2004 - 08:52 #1
Der er desværre ikke en indbygget funktion til tolltips i Flash, men du ret let selv lave en:

MovieClip.prototype.toolTip = function(txt) {
    tipOn = this.hitTest(_root._xmouse, _root._ymouse, true) ? true : false;
    tip_fmt = new TextFormat();
    with (tip_fmt) {
        font = "verdana";
        size = 10;
        color = 0x333333;
    }
    if (tipOn) {
        this.createTextField("tip_txt", 1, 0, 0, 0, 0);
        with (this.tip_txt) {
            text = txt;
            _x = this._xmouse;
            _y = this._ymouse-20;
            autoSize = "left";
            background = true;
            border = true;
            selectable = false;
            backgroundColor = "0xefefef";
            borderColor = 0x000000;
            setTextFormat(tip_fmt);
        }
    } else if (!tipOn) {
        this.tip_txt.removeTextField();
    }
};
this.onEnterFrame = function() {
    mit_mc.toolTip("En beskrivelse af dette billede");
};


mit_mc er det movieclip du gerne vil have tooltip på.
Avatar billede marrix Juniormester
18. juni 2004 - 09:06 #2
..uha...det er vist noget over mit ydmyge niveau. Kan du ved lejlighed kort forklare, hvad det er der sker?

Under alle omstændigheder, hvordan knytter jeg dit script på mit movieclip? Kan jeg gøre det direkte på MC i library? Det er nemlig således fat, at de MC, der skal have tooltip'et tilknyttet, dynamisk kaldes ind på stage via attachMovie (til et tomt MC)....
Avatar billede _k Nybegynder
18. juni 2004 - 11:09 #3
Cool lille script dér :o)

Du kan knytte scriptet til dit attachede mc umiddelbart efter at du attacher det. Det eneste du skal sørge for, er at det ligger i en onEnterFrame:

tomtMC.attachMovie("dit_mc", 100);
this.onEnterFrame = function() {
  tomtMC.dit_mc.toolTip("Whatever du vil forklare");
};
Avatar billede marrix Juniormester
18. juni 2004 - 13:23 #4
>> k
...kan du ikke lige uddybe: Hvad er det du mener med ovenstående? Hvad er det der skal ligge i en onEnterFrame? Scriptet? MC? Eller dit efterfølgende script??
Avatar billede _k Nybegynder
18. juni 2004 - 13:38 #5
du skal blot sætte det (eller noget i den retning) jeg har skrevet ind umiddelbart efter du har attached dit mc til det tomme mc. Hvis du smider din attachkode her, kan vi da godt mingelere den på plads...
Avatar billede marrix Juniormester
18. juni 2004 - 13:43 #6
...det ville da være dejligt, tak. Hermed:

function hentPic()
{
  ranV=random(6);
  ranH=random(6);
  while (ranV == ranH)
    {
        ranH=random(6);
    }
  _level0.backInst.tomtFotoInstH.attachMovie("foto_h_"+ranH, "nyH", 2000);
  _level0.frontInst.tomtFotoInstV.attachMovie("foto_v_"+ranV, "nyV", 2000);
}
hentPic()

...umiddelbart herefter har jeg så tilføjet cellb10ck's script, med en bette ændring (men det virker altså ikke):

this.onEnterFrame = function() {
    _level0.frontInst.tomtFotoInstV.nyV.toolTip("En beskrivelse af dette billede");
    _level0.backInst.tomtFotoInstH.nyH.toolTip("En beskrivelse af dette billede");
};
Avatar billede _k Nybegynder
18. juni 2004 - 14:32 #7
Prøv med:

function hentPic()
{
  ranV=random(6);
  ranH=random(6);
  while (ranV == ranH)
    {
        ranH=random(6);
    }
  _level0.backInst.tomtFotoInstH.attachMovie("foto_h_"+ranH, "nyH", 2000);
  _level0.frontInst.tomtFotoInstV.attachMovie("foto_v_"+ranV, "nyV", 2000);
  onEnterFrame = function() {
    eval("_level0.frontInst.tomtFotoInstV.foto_v_" + ranV).toolTip("Whatever du vil forklare");
}
}
hentPic();
Avatar billede marrix Juniormester
18. juni 2004 - 15:23 #8
...okay. Jeg har nu prøvet at tilpasse det. Men jeg er stadig lidt i tvivl om, hvor det forskellige skal indplaceres:

I det øverste lag i _root i frame 1 (filmen fylder kun 1 frame) ligger nu følgende script:

//Definerer og placerer et tooltip til de tomme MC med en tekst tilpasset mobiltlfMC'erne
MovieClip.prototype.toolTip = function(txt) {
    tipOn = this.hitTest(_root._xmouse, _root._ymouse, true) ? true : false;
    tip_fmt = new TextFormat();
    with (tip_fmt) {
        font = "verdana";
        size = 10;
        color = 0x333333;
    }
    if (tipOn) {
        this.createTextField("tip_txt", 1, 0, 0, 0, 0);
        with (this.tip_txt) {
            text = txt;
            _x = this._xmouse;
            _y = this._ymouse-20;
            autoSize = "left";
            background = true;
            border = true;
            selectable = false;
            backgroundColor = "0xefefef";
            borderColor = 0x000000;
            setTextFormat(tip_fmt);
        }
    } else if (!tipOn) {
        this.tip_txt.removeTextField();
    }
};

//Udvælger to tilfældige fotos og placerer det på stage i de tomme MC tomtFotoInstH/V
function hentPic()
{
  ranV=random(6);
  ranH=random(6);
  while (ranV == ranH)
    {
        ranH=random(6);
    }
  _level0.backInst.tomtFotoInstH.attachMovie("foto_h_"+ranH, "nyH", 2000);
  _level0.frontInst.tomtFotoInstV.attachMovie("foto_v_"+ranV, "nyV", 2000);
  onEnterFrame = function() {
    eval("_level0.frontInst.tomtFotoInstV.foto_v_" + ranV).toolTip("Whatever du vil forklare");
}
}
hentPic();

....men det virker stadigvæk ikke. Hvad gør jeg galt. Jeg kunne jo godt få det indledningsvise script til at virke i en lille testfilm, bestående kun af _root og et enkelt MC.

???
Avatar billede _k Nybegynder
18. juni 2004 - 15:32 #9
Jamen, jeg lavede jo også den fejl, at referere til det clip der skulle attaches frem for dets nye navn:

//Definerer og placerer et tooltip til de tomme MC med en tekst tilpasset mobiltlfMC'erne
MovieClip.prototype.toolTip = function(txt) {
    tipOn = this.hitTest(_root._xmouse, _root._ymouse, true) ? true : false;
    tip_fmt = new TextFormat();
    with (tip_fmt) {
        font = "verdana";
        size = 10;
        color = 0x333333;
    }
    if (tipOn) {
        this.createTextField("tip_txt", 1, 0, 0, 0, 0);
        with (this.tip_txt) {
            text = txt;
            _x = this._xmouse;
            _y = this._ymouse-20;
            autoSize = "left";
            background = true;
            border = true;
            selectable = false;
            backgroundColor = "0xefefef";
            borderColor = 0x000000;
            setTextFormat(tip_fmt);
        }
    } else if (!tipOn) {
        this.tip_txt.removeTextField();
    }
};

//Udvælger to tilfældige fotos og placerer det på stage i de tomme MC tomtFotoInstH/V
function hentPic()
{
  ranV=random(6);
  ranH=random(6);
  while (ranV == ranH)
    {
        ranH=random(6);
    }
  _level0.backInst.tomtFotoInstH.attachMovie("foto_h_"+ranH, "nyH", 2000);
  _level0.frontInst.tomtFotoInstV.attachMovie("foto_v_"+ranV, "nyV", 2001);
  onEnterFrame = function() {
    _level0.frontInst.tomtFotoInstV.nyH.toolTip("Whatever du vil forklare");
    _level0.frontInst.tomtFotoInstV.nyV.toolTip("Whatever du vil forklare");
}
}
hentPic();


...kan dog ikke gennemskue om det er på nyH eller nyV eller begge der skal være tooltips? Nu er det sat på begge to!
Avatar billede marrix Juniormester
18. juni 2004 - 15:35 #10
...det er som sædvanlig noget med de der levels, der går galt. Hvis jeg tester i min "rigtige" film på et MC i _root, så virker det fint (indlejret som beskrevet herover). Så det må jo være noget med nogle "stier" eller andet, der ikke virker?!?
Avatar billede _k Nybegynder
18. juni 2004 - 15:38 #11
Yep, det er igen path'en den er gal med så. Men du burde kunne snige dig udenom det ved at starte højere oppe på stien end _level0.

Alt efter hvor din kode er placeret, kan du måske bare nøjes med at fjerne _level0 alle steder hvor det optræder?
Avatar billede marrix Juniormester
18. juni 2004 - 15:41 #12
...okay. Prøver lige... Men hvad med de der "this"er - er det ok med dem, selvom funktionen mv. handler på kryds og tværs af flere levels?
Avatar billede _k Nybegynder
18. juni 2004 - 16:09 #13
cellb10ck's script er faktisk så snedigt, at den fungerer som klasse for et mc. Det betyder, at this i hans kode kommer til at gælde for lige præcis det mc du anvender koden på. Det gør jo næsten dit script objektorienteret - og det er der mange som klapper i hænderne over ;o)
Avatar billede marrix Juniormester
18. juni 2004 - 21:47 #14
...okay. Prøver lige at kigge videre på det i løbet af ugen. Men jeg skal på kursus. Så jeg vil egentlig gerne give jer points inden jeg tager afsted. Er det fair hvis I deler fifty-fifty? Halvdelen til >>cellb10ck for at komme med den indledende løsning, og halvdelen til >>k for at tilpasse scriptet til mine forhold....? I så fald skal jeg have et par hurtige svar - for jeg tager afsted lørdag morgen. ;)

venligst, Marianne
Avatar billede _k Nybegynder
18. juni 2004 - 22:50 #15
Lad os bare dele :o)
Avatar billede marrix Juniormester
19. juni 2004 - 06:21 #16
Hallooooo mester >>cellb10ck - skynd dig med et svar. Jeg skal afsted her til morgen. (Er først tilbage næste lørdag, aften)....
Avatar billede thulstrup Nybegynder
19. juni 2004 - 17:25 #17
Så er jeg her igen ;o)
Avatar billede marrix Juniormester
27. juni 2004 - 18:03 #18
Hej... Så'r det mig igen!!! Hermed points til jer begge - og tusind tak for hjælpen. Go' sommer ;)
Venligst, marianne
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester