Toon posts:

[FLASH]setMask reageert niet

Pagina: 1
Acties:

Verwijderd

Topicstarter
ik heb dit script geschreven:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
function build_catMenu() {
    for (i=0; i<strings_array.length; i++) {
        this.createTextField(["mc_catmenu_"+i], this.getNextHighestDepth(), 640, (430+(i*10)), 200, 16);
        this["mc_catmenu_" + i].text = strings_array[i];
        this["mc_catmenu_"+i].autoSize = "right";
        this["mc_catmenu_"+i].selectable = false;
        this["mc_catmenu_"+i].setTextFormat(format_pixelfont2);
        addText_catMenuMask(this["mc_catmenu_"+i]);
    }
}

function addText_catMenuMask(obj) {
    maxWidth = 80;
    duplicateMovieClip(bin_basicBox, ["obj_catMenuMask_" + i], this.getNextHighestDepth());
    this["obj_catMenuMask_" + i].colorTo(0xFF0000, 0);
    this["obj_catMenuMask_" + i]._width = 0;
    this["obj_catMenuMask_" + i]._height = 16;
    this["obj_catMenuMask_" + i]._x = obj._x + obj._width;
    this["obj_catMenuMask_" + i]._y = obj._y;   
    this["obj_catMenuMask_" + i].tween("_x", ((obj._x + obj._width) - maxWidth), 2.5, "easeIn", (i * .1));
    this["obj_catMenuMask_" + i].tween("_width", maxWidth, 2.5, "easeIn", (i * .1));
    trace(this["obj_catMenuMask_" + i]._y);
    obj.setMask(this["obj_catMenuMask_" + i]);
}

de bedoeling is dat text wordt neergezet vanuit een array (wat lukt) en daarna komt die text met een animatie naarvoren.
de text wordt dus wel geplaatst, en de animatie van de (rode) mask zie ik ook. alleen die maskeert de text eigenlijk niet.
hoe krijg ik het zover dat die dit wel doet?

  • Dark Blue
  • Registratie: Februari 2001
  • Laatst online: 03-04 12:16

Dark Blue

Compositionista!

Alpenmeisje

Ik weet niet zoveel van Actionscript en heb eigenlijk vorige week voor het eerst sinds 2 jaar weer Flash erbij gepakt en een Mask tutorial gedaan, máár:

komt je mask wel meteen in de layer boven je te maskeren object?

heidiulrich.nl | adventura.nl : rugzakavonturen | pathwise.nl : prepping geeks to get jobs


Verwijderd

Topicstarter
oke ik heb 'm opgelost.
mocht iemand er nog wat aan hebben; je kan een textField alleen dus niet masken, daarom heb ik deze in een movieclip gezet.

het script:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
function build_catMenu() {
    for (i=0; i<strings_array.length; i++) {
        this.createEmptyMovieClip(["mc_catmenu_"+i+"_mc"], this.getNextHighestDepth());
        this["mc_catmenu_"+i+"_mc"]._x = 840;
        this["mc_catmenu_"+i+"_mc"]._y = 430+(i*10);        
        //this.createTextField(["mc_catmenu_"+i], this.getNextHighestDepth(), 640, (430+(i*10)), 200, 16);
        this["mc_catmenu_"+i+"_mc"].createTextField(["mc_catmenu_"+i], this.getNextHighestDepth(), 0, 0, 200, 16);
        this["mc_catmenu_"+i+"_mc"]["mc_catmenu_" + i].text = strings_array[i];
        this["mc_catmenu_"+i+"_mc"]["mc_catmenu_"+i].autoSize = "right";
        this["mc_catmenu_"+i+"_mc"]["mc_catmenu_"+i].selectable = false;
        this["mc_catmenu_"+i+"_mc"]["mc_catmenu_"+i].setTextFormat(format_pixelfont2);
        this["mc_catmenu_"+i+"_mc"]._width = this["mc_catmenu_"+i+"_mc"]["mc_catmenu_"+i]._width;
        this["mc_catmenu_"+i+"_mc"]._x = this["mc_catmenu_"+i+"_mc"]._x + ["mc_catmenu_"+i]._x;
        this["mc_catmenu_"+i+"_mc"]["mc_catmenu_"+i]._x = 0 - this["mc_catmenu_"+i+"_mc"]["mc_catmenu_"+i]._width;
        trace(this["mc_catmenu_"+i+"_mc"]._width);
        trace(this["mc_catmenu_"+i+"_mc"]["mc_catmenu_"+i]._width);
        trace(this["mc_catmenu_"+i+"_mc"]._x);
        trace(this["mc_catmenu_"+i+"_mc"]["mc_catmenu_"+i]._x);     
        addText_catMenuMask(this["mc_catmenu_"+i+"_mc"]);
    }
}

function addText_catMenuMask(obj) {
    maxWidth = 80;
    duplicateMovieClip(bin_basicBox, ["obj_catMenuMask_" + i], this.getNextHighestDepth());
    this["obj_catMenuMask_" + i].colorTo(0xFF0000, 0);
    this["obj_catMenuMask_" + i]._width = 0;
    this["obj_catMenuMask_" + i]._height = 16;
    this["obj_catMenuMask_" + i]._x = obj._x;
    this["obj_catMenuMask_" + i]._y = obj._y;   
    this["obj_catMenuMask_" + i].tween("_x", (obj._x - maxWidth), 2.5, "easeIn", (i * .2));
    this["obj_catMenuMask_" + i].tween("_width", maxWidth, 2.5, "easeIn", (i * .2));    
    trace(this["obj_catMenuMask_" + i]._y);
    obj.setMask(this["obj_catMenuMask_" + i]);
}


ps @Dark Blue, het is actionscript dus maken layers niet uit :)