Calling Function From Main Timeline

Hi Everyone,

I decided to rewrite my question from an earlier post…

I’m using the TextMetric class: http://blog.greensock.com/textmetrics/

The code below currently resides on the attachedMC timeline, and is written twice with different variables for each time called for each dynamicText.

main timeline+++
///////////////////attachedMC+++
/////////////////////////////////////dynamicTextONE
/////////////////////////////////////dynamicTextTWO

What i am trying to do (emphasis on trying) is write the code on the main timeline, so that it can be called from any attached MC, a sort of global function if you will. Another thing to note is that there are multiple dynamic Texts using the function at the same time.

I have attempted to rewrite the code multiple times myself to no avail, so any input would be greatly appreciated.

CODE GIVEN BY DEVELOPER:


import gs.utils.text.TextMetrics;

var instances_array = TextMetrics.getLineMetrics(profile_txt);
var instance;

for (var i = 0; i <instances_array.length; i++) {
    instance = instances_array*;
    if(instance.width < 0){
        //do nothing
    }else if(instance.width > 3) {
        box(this, instance.x, instance.y, instance.width, instance.height);
    }
}

function box(parent, x, y, width, height):MovieClip {

    var l = parent.getNextHighestDepth();
    var mc = parent.createEmptyMovieClip("box"+l, l);
    mc.beginFill(0xFF0000);
    mc.moveTo (0, 0);
    mc.lineTo (width, 0);
    mc.lineTo (width, height);
    mc.lineTo (0, height);
    mc.lineTo (0, 0);
    mc.endFill();
    mc._x = x;
    mc._y = y;
    mc._alpha = 50;
    return mc;
}

CODE TWEAKED BY ME FOR MULTIPLE INSTANCES OF TEXT:


import gs.utils.text.TextMetrics;
TextField.prototype.swapDepths = MovieClip.prototype.swapDepths; 

profile_txt.swapDepths(200);
var new_array = TextMetrics.getLineMetrics(profile_txt);
var instance;


mission_txt.swapDepths(300);
var new_missionarray = TextMetrics.getLineMetrics(mission_txt);
var missioninstance;



for (var s = 0; s <new_missionarray.length; s++) {
    missioninstance = new_missionarray[s];
    if(missioninstance.width < 0){
        //do nothing
    }
    else if(missioninstance.width > 3) {
    box2(this, (missioninstance.x - 7), (missioninstance.y - 8), (missioninstance.width + 14), (missioninstance.height + 14));
    }
}
      
function box2(parents, xs, ys, widths, heights):MovieClip {
    for (var r = 1; r <new_missionarray.length; r++) {
    var pr = s;
    var mc2 = parents.createEmptyMovieClip("boxd"+pr, pr+100);
    mc2.beginFill(0x19120C);
    mc2.moveTo (0, 0);
    mc2.lineTo (widths, 0);
    mc2.lineTo (widths, heights);
    mc2.lineTo (0, heights);
    mc2.lineTo (0, 0);
    mc2.endFill();
    mc2._x = xs;
    mc2._y = ys;
    mc2._alpha = 100;
    //trace(mc.getDepth());
    return mc2;
    }
}


for (var i = 0; i <new_array.length; i++) {
    instance = new_array*;
    if(instance.width < 0){
        //do nothing
    }
    else if(instance.width > 3) {
    box(this, (instance.x - 7), (instance.y - 8), (instance.width + 14), (instance.height + 14));
    }
}
      
function box(parent, x, y, width, height):MovieClip {
    for (var g = 1; g <new_array.length; g++) {
    var tr = i;
    var mc = parent.createEmptyMovieClip("box"+tr, tr);
    mc.beginFill(0x19120C);
    mc.moveTo (0, 0);
    mc.lineTo (width, 0);
    mc.lineTo (width, height);
    mc.lineTo (0, height);
    mc.lineTo (0, 0);
    mc.endFill();
    mc._x = x;
    mc._y = y;
    mc._alpha = 100;
    //trace(mc.getDepth());
    return mc;
    }
}


stop();

CODE THAT HAS BEEN RAPED BY ME IN FUTILE ATTEMPT #4 TO WORK ON MAIN TIMELINE:


import gs.utils.text.TextMetrics;
TextField.prototype.swapDepths = MovieClip.prototype.swapDepths; 


this.attachMovie("text_mc","text_mc",1);


bgboxmaker = function(txtName, txtNameArrayOne, txtNameArrayTwo, BoxVarOne) {
    trace("bgboxmaker");
    txtNameArrayOne = TextMetrics.getLineMetrics(txtName);
    
    for (var i = 0; i <txtNameArrayOne.length; i++) {
        txtNameArrayTwo = txtNameArrayOne*;
        if(txtNameArrayTwo.width < 0){
            trace("if");
            //do nothing
        }
        else if(txtNameArrayTwo.width > 1) {
            trace("elseif");
            //box(this, (txtNameArrayTwo.x - 5), (txtNameArrayTwo.y - 5), (txtNameArrayTwo.width + 10), (txtNameArrayTwo.height + 10));
            for (var r = 1; r <txtNameArrayOne.length; r++) {
            BoxVarOne = i;
            box_mc = this.createEmptyMovieClip("box_mc"+BoxVarOne, BoxVarOne+100);
                box_mc.beginFill(0x19120C);
                box_mc.moveTo (0, 0);
                box_mc.lineTo (txtNameArrayTwo.width + 10, 0);
                box_mc.lineTo (txtNameArrayTwo.width + 10, txtNameArrayTwo.height + 10);
                box_mc.lineTo (0, txtNameArrayTwo.height + 10);
                box_mc.lineTo (0, 0);
                box_mc.endFill();
                box_mc._x = txtNameArrayTwo.x - 5;
                box_mc._y = txtNameArrayTwo.y - 5;
                box_mc._alpha = 6;
                return box_mc;
        }
    }

Thanks for looking,

Martha