Avatar billede supermand69 Nybegynder
21. januar 2007 - 23:16 Der er 7 kommentarer og
1 løsning

onRollOver - flere mc's

mcRow.onRollOver = function() {
    this._alpha = 90;
    mcTxt._x += 4;
}

Jeg kan ikke få ovestående til at virke rigtigt..

på mcRow bliver _alpha sat til 90% som der står i min funktion, men mit mcTxt movieclip sker der intet med?
Avatar billede jensgram Nybegynder
21. januar 2007 - 23:27 #1
Skal den evt. tilgås gnm. _root?
Avatar billede jensgram Nybegynder
21. januar 2007 - 23:27 #2
(uden at jeg på nogen måde er sikker)
Avatar billede mat Nybegynder
22. januar 2007 - 10:27 #3
Kan du trace mcTxt._x?
Avatar billede supermand69 Nybegynder
22. januar 2007 - 19:20 #4
når jeg tracer tager den fra den seneste mc der er oprettet ud fra mit array

jeg har noget mere kode her.. jeg synes selv jeg gør det rigtigt?

function plylst_list(id_arr, x, y)
{
    var mask_width = 200;
    var mask_height = 70;
   
    var rowPad_top = -1;
    var rowPad_left = 2;
    var rowPad_right = 2;
    var row_width = mask_width;
    var row_height = 14;
   
    var mask_txt_width = mask_width - rowPad_left - rowPad_right;
   
    var mcMask = _root.createEmptyMovieClip("mcPlylst_rows_mask", _root.getNextHighestDepth());
    drw_rect(mcMask, x, y, mask_width, mask_height);
   
    var mcRows = _root.createEmptyMovieClip("mcPlylst_rows", _root.getNextHighestDepth());
    mcRows.setMask(mcMask);
   
    for(var i = 0; i < id_arr.length; i++)
    {
        var mcRow = mcRows.createEmptyMovieClip("mcPlylst_row"+id_arr[i], mcRows.getNextHighestDepth());
        mcRow._alpha = 0;
        drw_rect(mcRow, x, y, row_width, row_height, "004E98");
       
        var mcTxt_mask = mcRows.createEmptyMovieClip("mcPlylst_txt_mask"+id_arr[i], mcRows.getNextHighestDepth());
        drw_rect(mcTxt_mask, x+rowPad_left, y, mask_txt_width, row_height);
       
        var mcTxt = mcRows.createEmptyMovieClip("mcPlylst_txt"+id_arr[i], mcRows.getNextHighestDepth());
        mcTxt.setMask(mcTxt_mask);
       
        var txt = mcTxt.createTextField("txtPlylst"+id_arr[i], mcTxt.getNextHighestDepth(), x+rowPad_left, y+rowPad_top, 0, 0);
        txt.text = plylst_artist_arr[i];
        txt.setTextFormat(txtFormat_plylst);
        txt.selectable = false;
        txt.autoSize = true;
       
        mcRow.onRollOver = function()
        {
            this._alpha = 90;
           
            trace(txt.text);
            /*
            if(this._width > rect._width)
            {
                var frame_set = 4;
                var reverse = false;
                var txt_w = this._width;
               
                this.onEnterFrame = function()
                {
                    if(reverse)
                    {
                        if(this._x+frame_set < 0) this._x += frame_set;
                        else
                        {
                            this._x = 0;
                           
                            delete this.onEnterFrame
                        }
                    }
                    else
                    {
                        if(this._x+txt_w > rect_w) this._x += -(frame_set);
                        else reverse = true;
                    }
                }
            }
            */
        }
       
        mcRow.onRollOut = function()
        {
            this._alpha = 0;
           
            mcTxt._x = 0;
           
            delete this.onEnterFrame;
        }
       
        y += row_height;
    }
}
Avatar billede supermand69 Nybegynder
22. januar 2007 - 19:22 #5
eller her er alt det kode som skal bruges til funktionen :)

with(txtFormat_plylst = new TextFormat())
{
    size = 9;
    font = "tahoma";
    color = 0xBFBFBF;
}

function drw_rect(mc, x, y, width, height, bg_color, stroke, sk_color)
{
    mc.lineStyle(stroke, "0x"+sk_color);
    mc.beginFill("0x"+bg_color);
    mc.moveTo(x, y);
    mc.lineTo(x + width, y);
    mc.lineTo(x + width, y + height);
    mc.lineTo(x, y + height);
    mc.lineTo(x, y);
    mc.endFill();
}

//----------------------------------------------------------------------------------------------
//    plylst
//----------------------------------------------------------------------------------------------
var plylst_id_arr = [0,1,2,3];
var plylst_artist_arr = ["Kim Larsen der er et langt ord som fylder ret så meget i det hele taget","Frank g Homo","he","asdf","33","123"];
var plylst_title_arr = [];
var plylst_time_arr = [];
var plylst_label_arr = [];
var plylst_date_arr = [];

function plylst_list(id_arr, x, y)
{
    var mask_width = 200;
    var mask_height = 70;
   
    var rowPad_top = -1;
    var rowPad_left = 2;
    var rowPad_right = 2;
    var row_width = mask_width;
    var row_height = 14;
   
    var mask_txt_width = mask_width - rowPad_left - rowPad_right;
   
    var mcMask = _root.createEmptyMovieClip("mcPlylst_rows_mask", _root.getNextHighestDepth());
    drw_rect(mcMask, x, y, mask_width, mask_height);
   
    var mcRows = _root.createEmptyMovieClip("mcPlylst_rows", _root.getNextHighestDepth());
    mcRows.setMask(mcMask);
   
    for(var i = 0; i < id_arr.length; i++)
    {
        var mcRow = mcRows.createEmptyMovieClip("mcPlylst_row"+id_arr[i], mcRows.getNextHighestDepth());
        mcRow._alpha = 0;
        drw_rect(mcRow, x, y, row_width, row_height, "004E98");
       
        var mcTxt_mask = mcRows.createEmptyMovieClip("mcPlylst_txt_mask"+id_arr[i], mcRows.getNextHighestDepth());
        drw_rect(mcTxt_mask, x+rowPad_left, y, mask_txt_width, row_height);
       
        var mcTxt = mcRows.createEmptyMovieClip("mcPlylst_txt"+id_arr[i], mcRows.getNextHighestDepth());
        mcTxt.setMask(mcTxt_mask);
       
        var txt = mcTxt.createTextField("txtPlylst"+id_arr[i], mcTxt.getNextHighestDepth(), x+rowPad_left, y+rowPad_top, 0, 0);
        txt.text = plylst_artist_arr[i];
        txt.setTextFormat(txtFormat_plylst);
        txt.selectable = false;
        txt.autoSize = true;
       
        mcRow.onRollOver = function()
        {
            this._alpha = 90;
           
            trace(txt.text);
            /*
            if(this._width > rect._width)
            {
                var frame_set = 4;
                var reverse = false;
                var txt_w = this._width;
               
                this.onEnterFrame = function()
                {
                    if(reverse)
                    {
                        if(this._x+frame_set < 0) this._x += frame_set;
                        else
                        {
                            this._x = 0;
                           
                            delete this.onEnterFrame
                        }
                    }
                    else
                    {
                        if(this._x+txt_w > rect_w) this._x += -(frame_set);
                        else reverse = true;
                    }
                }
            }
            */
        }
       
        mcRow.onRollOut = function()
        {
            this._alpha = 0;
           
            mcTxt._x = 0;
           
            delete this.onEnterFrame;
        }
       
        y += row_height;
    }
}
//----------------------------------------------------------------------------------------------

plylst_list(plylst_id_arr, 10, 10);
Avatar billede mat Nybegynder
23. januar 2007 - 11:35 #6
Over linien;

mcRow.onRollOver = function()

skriver du;

mcRow.ref = mcTxt;

Og så refererer du til den som this.ref i dine onRollOver og onRollOut...det vil jeg tro giver den ønskede effekt?

mvh mat
Avatar billede supermand69 Nybegynder
23. januar 2007 - 17:52 #7
mat > sådan :)

lav et svar
Avatar billede mat Nybegynder
23. januar 2007 - 18:02 #8
aight
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