Jump to content
GreenSock

Search In
  • More options...
Find results that contain...
Find results in...
PapaDeBeau

ThrowProps - Strange Space on Top or left in APPS

Recommended Posts

Following code gets this error: Parameter child must be non-null.

 

 

Just trying to get several movieClips into one and laoding that one into throwprops..

 

What am I doing wrong?

GETS ERROR: Parameter child must be non-null.
import flash.filesystem.File;

var folderLanguages:File = File.applicationDirectory.resolvePath("Languages");

var availLang:Array = folderLanguages.getDirectoryListing();
var Lang:Array;
var LangPath:Array;
var flagButton:MovieClip;


function getLang(evt:Event)
{
Lang = new Array();
LangPath = new Array();
for (var i:uint = 0; i < availLang.length; i++)
   {
   
   if(availLang[i].isDirectory)
         {
        //trace(availLang[i].name);// gets the name
        Lang.push(availLang[i].name);
        LangPath.push(availLang[i].nativePath);
        trace(availLang[i].nativePath);// gets the name
        
         }
   }
   evt.target.visible = false;
}

var Language:MovieClip;
var LangButton:MovieClip;
var flag:Loader;
var fh:Object;

function displayFlags(evt:Event = null)
{
    if(!Lang) { return; }
    var flagButton:MovieClip = new MovieClip();
    addChild(flagButton);
    for (var i:uint = 0; i < Lang.length; i++)
   {
       //Language = new MovieClip();
       //Language.name = Lang[i];
       LangButton = new button01();
       LangButton.name = Lang[i];
       LangButton.btext.text = Lang[i];
       LangButton.y = LangButton.height * i;
       LangButton.btext.x = 125;
       addChild(LangButton);
       flag = new Loader();
       flag.load(new URLRequest(LangPath[i]+"/flag.png"));
       flag.name = Lang[i];
       flag.contentLoaderInfo.addEventListener(Event.COMPLETE, loadedFlag);
       function loadedFlag(evt:Event)
       {
           
            var fh = flag.getBounds(flag);

           trace("FLAG HEIGHT = " + fh);
           trace("flag Name: "+ flag.name);
           trace(flag);
           var myFlagInfo:LoaderInfo = evt.currentTarget as LoaderInfo;
           var myFlag:Loader = myFlagInfo.loader;
           myFlag.y = (LangButton.height/2) - (flag.height/2);
           
           
       }
       LangButton.addChild(flag);
       flagButton.addChild(LangButton);
   }
evt.target.visible = false;
flagButton.alpha = .2;
callFlagButton();
}

B1.addEventListener(MouseEvent.CLICK, getLang);
B2.addEventListener(MouseEvent.CLICK, displayFlags);



function callFlagButton()

{

import com.greensock.*;
import com.greensock.easing.*;
import com.greensock.plugins.*;
import flash.geom.Rectangle;
import flash.utils.getTimer;
import flash.events.MouseEvent;
import flash.text.*;
import flash.display.*;
TweenPlugin.activate([ThrowPropsPlugin]);

var bounds:Rectangle = new Rectangle(0, 0, stage.stageWidth, stage.stageHeight);
var mc:Sprite = flagButton;
addChild(mc);
//setupTextField(mc, bounds);
var blitMask:BlitMask = new BlitMask(mc, bounds.x, bounds.y, bounds.width, bounds.height, false);

var t1:uint, t2:uint, y1:Number, y2:Number, yOverlap:Number, yOffset:Number;

blitMask.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);

function mouseDownHandler(event:MouseEvent):void {
    TweenLite.killTweensOf(mc);
    y1 = y2 = mc.y;
    yOffset = this.mouseY - mc.y;
    yOverlap = Math.max(0, mc.height - bounds.height);
    t1 = t2 = getTimer();
    mc.stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
    mc.stage.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
}

function mouseMoveHandler(event:MouseEvent):void {
    var y:Number = this.mouseY - yOffset;
    //if mc's position exceeds the bounds, make it drag only half as far with each mouse movement (like iPhone/iPad behavior)
    if (y > bounds.top) {
        mc.y = (y + bounds.top) * 0.5;
    } else if (y < bounds.top - yOverlap) {
        mc.y = (y + bounds.top - yOverlap) * 0.5;
    } else {
        mc.y = y;
    }
    blitMask.update();
    var t:uint = getTimer();
    //if the frame rate is too high, we won't be able to track the velocity as well, so only update the values 20 times per second
    if (t - t2 > 50) {
        y2 = y1;
        t2 = t1;
        y1 = mc.y;
        t1 = t;
    }
    event.updateAfterEvent();
}

function mouseUpHandler(event:MouseEvent):void {
    mc.stage.removeEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
    mc.stage.removeEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
    var time:Number = (getTimer() - t2) / 1000;
    var yVelocity:Number = (mc.y - y2) / time;
    ThrowPropsPlugin.to(mc, {throwProps:{
                                 y:{velocity:yVelocity, max:bounds.top, min:bounds.top - yOverlap, resistance:300}
                             }, onUpdate:blitMask.update, ease:Strong.easeOut
                            }, 10, 0.3, 1);
}
}
Link to comment
Share on other sites

That's an awful log of code to imagine how it compiles but that error usually happens when using addChild() and passing in a non-existent child parameter.

 

I see that you are declaring flagButton multiple times

 

at the top of your script:

var flagButton:MovieClip;

and then later INSIDE the displayFlags button you re-declare and assign it a value

var flagButton:MovieClip = new MovieClip();

And then later you do this

 

 

var mc:Sprite = flagButton;
addChild(mc);

I think that is where the error is. The flagbutton you reference there is the empty var you declared at the top of your script, not the one inside your function.

 

inside displayFlag()... don't use 'var' again just do:

flagButton = new MovieClip();

see if that works.

 

Link to comment
Share on other sites

thanks for the awesome tip. I was sooo sleepy when I posted this. I could not even think to hit enter. Anyway, that seemed to do it but for some reason throwprops is not picking it up. Its not moving. The alpha for flagButton works but its not being moved by throwProps. Not sure why. I have Maybe there is something blocking it? Humm

 

I know the script is connected properly because I tested it with the movieClip B1 and it work. :).

Link to comment
Share on other sites

Ok I figured some of it. I got my mc to move via throwprops, HOWEVER, now my flags are gone.

I am loading a dynamicly loaded mc and dynamically loaded flags.  I know I am doing it right. This must be an error in greensock script perhaps? Its not showing children of children?

import flash.filesystem.File;

var folderLanguages:File = File.applicationDirectory.resolvePath("Languages");

var availLang:Array = folderLanguages.getDirectoryListing();
var Lang:Array;
var LangPath:Array;
var flagButton:MovieClip;


function getLang(evt:Event)
{
Lang = new Array();
LangPath = new Array();
for (var i:uint = 0; i < availLang.length; i++)
   {
   
   if(availLang[i].isDirectory)
         {
        //trace(availLang[i].name);// gets the name
        Lang.push(availLang[i].name);
        LangPath.push(availLang[i].nativePath);
        trace(availLang[i].nativePath);// gets the name
        
         }
   }
   evt.target.visible = false;
}

var Language:MovieClip;
var LangButton:MovieClip;
var flag:Loader;
var fh:Object;

var mc:Sprite;
var bounds:Rectangle = new Rectangle(0, 0, stage.stageWidth, stage.stageHeight);

//setupTextField(mc, bounds);
var blitMask:BlitMask = new BlitMask(mc, bounds.x, bounds.y, bounds.width, bounds.height, false);

var t1:uint, t2:uint, y1:Number, y2:Number, yOverlap:Number, yOffset:Number;

function displayFlags(evt:Event = null)
{
    if(!Lang) { return; }
    flagButton = new MovieClip();
    addChild(flagButton);
    mc  = new MovieClip();
    addChild(mc);
    for (var i:uint = 0; i < Lang.length; i++)
   {
       //Language = new MovieClip();
       //Language.name = Lang[i];
       LangButton = new button01();
       LangButton.name = Lang[i];
       LangButton.btext.text = Lang[i];
       LangButton.y = LangButton.height * i;
       LangButton.btext.x = 125;
       addChild(LangButton);
       flag = new Loader();
       flag.load(new URLRequest(LangPath[i]+"/flag.png"));
       flag.name = Lang[i];
       flag.contentLoaderInfo.addEventListener(Event.COMPLETE, loadedFlag);
       function loadedFlag(evt:Event)
       {
           
            var fh = flag.getBounds(flag);

           trace("FLAG HEIGHT = " + fh);
           trace("flag Name: "+ flag.name);
           trace(flag);
           var myFlagInfo:LoaderInfo = evt.currentTarget as LoaderInfo;
           var myFlag:Loader = myFlagInfo.loader;
           myFlag.y = (LangButton.height/2) - (flag.height/2);
           
           
       }
       LangButton.addChild(flag);
       flagButton.addChild(LangButton);
      
      flagButton.alpha = .3;
     mc.addChild(flagButton);
   }
evt.target.visible = false;


bounds = new Rectangle(0, 0, stage.stageWidth, stage.stageHeight);

//setupTextField(mc, bounds);
blitMask = new BlitMask(mc, bounds.x, bounds.y, bounds.width, bounds.height, false);

//t1:uint, t2:uint, y1:Number, y2:Number, yOverlap:Number, yOffset:Number;

blitMask.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
}

import com.greensock.*;
import com.greensock.easing.*;
import com.greensock.plugins.*;
import flash.geom.Rectangle;
import flash.utils.getTimer;
import flash.events.MouseEvent;
import flash.text.*;
import flash.display.*;
TweenPlugin.activate([ThrowPropsPlugin]);



function mouseDownHandler(event:MouseEvent):void {
    TweenLite.killTweensOf(mc);
    y1 = y2 = mc.y;
    yOffset = this.mouseY - mc.y;
    yOverlap = Math.max(0, mc.height - bounds.height);
    t1 = t2 = getTimer();
    mc.stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
    mc.stage.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
}

function mouseMoveHandler(event:MouseEvent):void {
    var y:Number = this.mouseY - yOffset;
    //if mc's position exceeds the bounds, make it drag only half as far with each mouse movement (like iPhone/iPad behavior)
    if (y > bounds.top) {
        mc.y = (y + bounds.top) * 0.5;
    } else if (y < bounds.top - yOverlap) {
        mc.y = (y + bounds.top - yOverlap) * 0.5;
    } else {
        mc.y = y;
    }
    blitMask.update();
    var t:uint = getTimer();
    //if the frame rate is too high, we won't be able to track the velocity as well, so only update the values 20 times per second
    if (t - t2 > 50) {
        y2 = y1;
        t2 = t1;
        y1 = mc.y;
        t1 = t;
    }
    event.updateAfterEvent();
}

function mouseUpHandler(event:MouseEvent):void {
    mc.stage.removeEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
    mc.stage.removeEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
    var time:Number = (getTimer() - t2) / 1000;
    var yVelocity:Number = (mc.y - y2) / time;
    ThrowPropsPlugin.to(mc, {throwProps:{
                                 y:{velocity:yVelocity, max:bounds.top, min:bounds.top - yOverlap, resistance:300}
                             }, onUpdate:blitMask.update, ease:Strong.easeOut
                            }, 10, 0.3, 1);
}




B1.addEventListener(MouseEvent.CLICK, getLang);
B2.addEventListener(MouseEvent.CLICK, displayFlags);




 

Link to comment
Share on other sites

When you create a BlitMask it automatically does a bitmap capture of all the pixels in the target (in your case mc). If you add more child clips to mc, change the text in mc, or do any visual changes you need to tell your BlitMask to to recapture the new visuals using the update() method

 

from the docs:

 

update(): Updates the BlitMask's internal bitmap to reflect the target's current position/scale/rotation. This is a very important method that you'll need to call whenever visual or transformational changes are made to the target so that the BlitMask remains synced with it.

 

 

 

After you do addChild() on mc or any children of mc you need to do:

blitMask.update(null, true);
Link to comment
Share on other sites

Thanks for the update. I got excited, sadly I am getting this error after adding that code right after the addchild

TypeError: Error #1009: Cannot access a property or method of a null object reference.
    at com.greensock::BlitMask/update()[C:\User\yadaya\com\greensock\BlitMask.as:295]

 

For Example:
mc  =  new MovieClip;
addChild(mc);
blitMask.update(null,true);
mc.addChild(flagButton);
mc.alpha = .3;

 is not working...

 

the alpha works when I don't add a my.addChildren(flagbutton);

Link to comment
Share on other sites

I noticed you are doing a few odd things 

 

1) you are declaring mc twice, once as a Sprite, another time as a movieclip

first you do:

var mc:Sprite;

 

then later:

mc  = new MovieClip();

 

2) you are creating the blitmask twice

 

3) the first time you create the BlitMask you pass in mc, which hasn't yet been assigned a value

 

 

var mc:Sprite;
var bounds:Rectangle = new Rectangle(0, 0, stage.stageWidth, stage.stageHeight);


//setupTextField(mc, bounds);
var blitMask:BlitMask = new BlitMask(mc, bounds.x, bounds.y, bounds.width, bounds.height, false);

To remedy this. first, don't declare mc as a Sprite if it is in fact going to be a MovieClip.

Only create the BlitMask once, and only after mc has a valid value.

 

If you were to create a file with just this sample of your code:

 

 

import flash.display.Sprite;
import com.greensock.BlitMask;
var mc:Sprite;
var bounds:Rectangle = new Rectangle(0, 0, stage.stageWidth, stage.stageHeight);

var blitMask:BlitMask = new BlitMask(mc, bounds.x, bounds.y, bounds.width, bounds.height, false);
blitMask.update();

You would get the same error. note BlitMask can't update() its target, because its target (mc) isn't anything.

 

 

When creating your Blitmask you do something more like

 

 

 
var mc:MovieClip = new MovieClip();
addChild(mc);
var bounds:Rectangle = new Rectangle(0, 0, stage.stageWidth, stage.stageHeight);




var blitMask:BlitMask = new BlitMask(mc, bounds.x, bounds.y, bounds.width, bounds.height, false);

and remove "mc  = new MovieClip();" from the displayFlags() function.

 

Link to comment
Share on other sites

Hummm ok Let's try this. Can you help me? This is all I am trying to do. I need to figure out a way to get MC's "like this" in the future into your  awesome plugin and working.  

 

In this case I need to have the MC called "flagButton" controlled by greensock.  

 

I am including a link to the zipped folder you you can test it. http://www.massmediamail.com/testing/GreensockRocks.zip

 

 

Here is my code alone:

import flash.filesystem.File;


B1.btext.text = "Press me 1st";
B2.btext.text = "Press me 2nd";



var folderLanguages:File = File.applicationDirectory.resolvePath("Languages");

var availLang:Array = folderLanguages.getDirectoryListing();
var Lang:Array;
var LangPath:Array;
var flagButton:MovieClip;


function getLang(evt:Event)
{
Lang = new Array();
LangPath = new Array();
for (var i:uint = 0; i < availLang.length; i++)
   {
   
   if(availLang[i].isDirectory)
         {
        //trace(availLang[i].name);// gets the name
        Lang.push(availLang[i].name);
        LangPath.push(availLang[i].nativePath);
        trace(availLang[i].nativePath);// gets the name
        
         }
   }
   evt.target.visible = false;
}

var Language:MovieClip;
var LangButton:MovieClip;
var flag:Loader;
var fh:Object;



function displayFlags(evt:Event = null)
{
    if(!Lang) { return; }
    flagButton = new MovieClip();
 
    for (var i:uint = 0; i < Lang.length; i++)
   {
       //Language = new MovieClip();
       //Language.name = Lang[i];
       LangButton = new button01();
       LangButton.name = Lang[i];
       LangButton.btext.text = Lang[i];
       LangButton.y = LangButton.height * i;
       LangButton.btext.x = 125;
       addChild(LangButton);
       flag = new Loader();
       flag.load(new URLRequest(LangPath[i]+"/flag.png"));
       flag.name = Lang[i];
       flag.contentLoaderInfo.addEventListener(Event.COMPLETE, loadedFlag);
       function loadedFlag(evt:Event)
       {
           
            var fh = flag.getBounds(flag);

           trace("FLAG HEIGHT = " + fh);
           trace("flag Name: "+ flag.name);
           trace(flag);
           var myFlagInfo:LoaderInfo = evt.currentTarget as LoaderInfo;
           var myFlag:Loader = myFlagInfo.loader;
           myFlag.y = (LangButton.height/2) - (flag.height/2);
           
           
       }
       LangButton.addChild(flag);
       flagButton.addChild(LangButton);
       
   }
evt.target.visible = false;
addChild(flagButton);

}




B1.addEventListener(MouseEvent.CLICK, getLang);
B2.addEventListener(MouseEvent.CLICK, displayFlags);


I need to master this concept and I was trying to use your example and change things based off of what I thought might work. Thus it got really messy.

 

Thanks for your help and the great plugin.


 

Link to comment
Share on other sites

OK I GOT IT TO WORK.. . But I am worried because I just deteted and added and got WAY LUCKY!!! I am afraid this may break later and I don't know why.

 

I would like to understand what it could hurt that I removed 2 blitMask updates. This scares me that I got luck.

 

also the addEventlistner would NOT work as a blitMask. I had to change it to  the var mc.

 

 

the small changes to make it work. I had to REMOVE 2 blitMask updates and add the mc after the dot in the blitMask section.

blitMask = new BlitMask(mc.flagButton, bounds.x, bounds.y, bounds.width, bounds.height, false);

 

 

 

 

THE FULL CODE BEOW

import flash.filesystem.File;


B1.btext.text = "Press me 1st";
B2.btext.text = "Press me 2nd";



var folderLanguages:File = File.applicationDirectory.resolvePath("Languages");

var availLang:Array = folderLanguages.getDirectoryListing();
var Lang:Array;
var LangPath:Array;
var flagButton:MovieClip;


function getLang(evt:Event)
{
Lang = new Array();
LangPath = new Array();
for (var i:uint = 0; i < availLang.length; i++)
   {
   
   if(availLang[i].isDirectory)
         {
        //trace(availLang[i].name);// gets the name
        Lang.push(availLang[i].name);
        LangPath.push(availLang[i].nativePath);
        trace(availLang[i].nativePath);// gets the name
        
         }
   }
   evt.target.visible = false;
}

var Language:MovieClip;
var LangButton:MovieClip;
var flag:Loader;
var fh:Object;

/// DECLARES MC
var mc:MovieClip = new MovieClip();
var bounds:Rectangle = new Rectangle(0, 0, stage.stageWidth, stage.stageHeight);
var blitMask:BlitMask;

function displayFlags(evt:Event = null)
{
    if(!Lang) { return; }
    flagButton = new MovieClip();
 
    for (var i:uint = 0; i < Lang.length; i++)
   {
       //Language = new MovieClip();
       //Language.name = Lang[i];
       LangButton = new button01();
       LangButton.name = Lang[i];
       LangButton.btext.text = Lang[i];
       LangButton.y = LangButton.height * i;
       LangButton.btext.x = 125;
       addChild(LangButton);
       flag = new Loader();
       flag.load(new URLRequest(LangPath[i]+"/flag.png"));
       flag.name = Lang[i];
       flag.contentLoaderInfo.addEventListener(Event.COMPLETE, loadedFlag);
       function loadedFlag(evt:Event)
       {
           
            var fh = flag.getBounds(flag);

           trace("FLAG HEIGHT = " + fh);
           trace("flag Name: "+ flag.name);
           trace(flag);
           var myFlagInfo:LoaderInfo = evt.currentTarget as LoaderInfo;
           var myFlag:Loader = myFlagInfo.loader;
           myFlag.y = (LangButton.height/2) - (flag.height/2);
           
           
       }
       LangButton.addChild(flag);
       flagButton.addChild(LangButton);
       
   }
evt.target.visible = false;
addChild(flagButton);



addChild(mc);
mc.addChild(flagButton);


blitMask = new BlitMask(mc.flagButton, bounds.x, bounds.y, bounds.width, bounds.height, false);

 mc.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);


}


B1.addEventListener(MouseEvent.CLICK, getLang);
B2.addEventListener(MouseEvent.CLICK, displayFlags);


import com.greensock.*;
import com.greensock.easing.*;
import com.greensock.plugins.*;
import flash.geom.Rectangle;
import flash.utils.getTimer;
import flash.events.MouseEvent;
import flash.text.*;
import flash.display.*;
TweenPlugin.activate([ThrowPropsPlugin]);


var t1:uint, t2:uint, y1:Number, y2:Number, yOverlap:Number, yOffset:Number;


function mouseDownHandler(event:MouseEvent):void {
    trace("Mouse Down");
    TweenLite.killTweensOf(mc);
    y1 = y2 = mc.y;
    yOffset = this.mouseY - mc.y;
    yOverlap = Math.max(0, mc.height - bounds.height);
    t1 = t2 = getTimer();
    mc.stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
    mc.stage.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
}

function mouseMoveHandler(event:MouseEvent):void {
    var y:Number = this.mouseY - yOffset;
    //if mc's position exceeds the bounds, make it drag only half as far with each mouse movement (like iPhone/iPad behavior)
    if (y > bounds.top) {
        mc.y = (y + bounds.top) * 0.5;
    } else if (y < bounds.top - yOverlap) {
        mc.y = (y + bounds.top - yOverlap) * 0.5;
    } else {
        mc.y = y;
    }
   //blitMask.update();
    var t:uint = getTimer();
    //if the frame rate is too high, we won't be able to track the velocity as well, so only update the values 20 times per second
    if (t - t2 > 50) {
        y2 = y1;
        t2 = t1;
        y1 = mc.y;
        t1 = t;
    }
    event.updateAfterEvent();
}

function mouseUpHandler(event:MouseEvent):void {
    mc.stage.removeEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
    mc.stage.removeEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
    var time:Number = (getTimer() - t2) / 1000;
    var yVelocity:Number = (mc.y - y2) / time;
    ThrowPropsPlugin.to(mc, {throwProps:
    {
    y:{velocity:yVelocity, max:bounds.top,
    min:bounds.top - yOverlap, resistance:300}},
    //onUpdate:blitMask.update,
    ease:Strong.easeOut }, 10, 0.3, 1);
}







Link to comment
Share on other sites

I think the reason it works is because you are in essence removing the BlitMask functionality.

Do a quick test and remove all references to BlitMask. I think your code will still work.

 

If so, it might be better for you to use the code without BlitMask. You really only need it if you are getting poor animation results. 

 

The purpose of BlitMask is that it creates a bitmap copy of "mc" (the thing that is being thrown)  and then the BlitMask only displays a small portion of that bitmap at a time, which gives you faster scrolling. 

 

If you set mc.flagButton as the target of your BlitMask... its not really going to do anything for you.

 

To get the performance gains of BlitMask, mc should be the target of your BlitMask and your Tween should be calling BlitMask.update via the onUpdate callback.

 

At this point it might make more sense to start a new file with the sample code at:

http://www.greensock.com/throwprops/

 and slowly start to add new features to it. 

Link to comment
Share on other sites

oh wow. I just did research on blitMask. I would love to get this code working on this app. It's for a phone. I sent the fla. Can you take a look at it. I also included the code pasted but you need the files to see how it's not working.

 

Now I want to Mast blitMask. It seems to be so fast!

 

Thanks again.

Link to comment
Share on other sites

Hi,

 

I looked at the file you provided. I get a bunch of errors about 

 

Error #2044: Unhandled IOErrorEvent:. text=Error #2035: URL Not Found.
Error #2044: Unhandled IOErrorEvent:. text=Error #2035: URL Not Found.
Error #2044: Unhandled IOErrorEvent:. text=Error #2035: URL Not Found.
Error #2044: Unhandled IOErrorEvent:. text=Error #2035: URL Not Found.
Error #2044: Unhandled IOErrorEvent:. text=Error #2035: URL Not Found.
 
 
I'm sorry but we can't dig through your production code trying to figure out everything that isn't working, nor can we take you production files and do custom coding to make everything work. 
For something like this it is absolutely critical that you try to implement the basic functionality that you are having trouble with (ThrowProps / BlitMask) outside of all the code you have for switching languages and loading assets from multiple folders.
 
You should start with the code provided on the throwProps page (as that has BlitMask and ThrowProps working already) Change the text field that scrolls to a simple movie clip and then work on dynamically adding some items (from the library) to the target of the BlitMask. 
 
Here is an idea of what I mean:
http://snorkl.tv/dev/throwProps/

 

fla here:http://snorkl.tv/dev/throwProps/throwPropsBlitMask.fla (CS5)

 

Also, this thread here has a nice example of adding interactive elements to a BlitMask:

http://forums.greensock.com/topic/6777-clickable-movieclip-in-movieclip-throwprops/#entry26095

 

We want to help you the best we can to understand how the tools work, but in order to that we have to really focus on the part of the GreenSock API that is giving you trouble without getting too deep into complex implementations specific to your project. 

 

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×