derrida
asked on
looping a sprite AS3
Hi
my question should have been so simple but somehow i get it wrong.
i need to loop through and put on the stage 8 instances of a sprite.
it adds 1 visually but it does loop it 8 times. and the sprites are not scattered around like i need them to do.
i attach the code
i have another question: how do i set a registration point for the sprite with code?
best regards
ron
my question should have been so simple but somehow i get it wrong.
i need to loop through and put on the stage 8 instances of a sprite.
it adds 1 visually but it does loop it 8 times. and the sprites are not scattered around like i need them to do.
i attach the code
i have another question: how do i set a registration point for the sprite with code?
best regards
ron
import caurina.transitions.*;
var holder_mc:Sprite = new Sprite();
holder_mc.graphics.beginFill(0x000000);
holder_mc.graphics.drawRect(0,0, stage.stageWidth + 200,stage.stageHeight + 200);
holder_mc.graphics.endFill();
var ds:DropShadowFilter = new DropShadowFilter(5,45,0x999999,0.5,4,4,1,5);
holder_mc.filters = [ds];
holder_mc.alpha =0;
function dropPics ():void {
Tweener.addTween(holder_mc,{height: 100,width:100,alpha: 1,time: 1,transition: "easeOut"});
for(var i:int =0 ; i < 8; i++){
//trace(i);
addChild(holder_mc);
holder_mc.x += 5;
holder_mc.y += 5;
}
}
dropPics();
I don't do AS3, but for what it is worth, it looks like you keep adding the same movie clip "holder_mc" as a child. Maybe you could try naming the clip something different each pass. Like ["holder_mc+i] and add the addTween as part of the loop. Don't you need a separate tween for each child?
You need to create a new one each time ...
You can make the code more elegant with an Array or an Object
WC
You can make the code more elegant with an Array or an Object
WC
var ds:DropShadowFilter = new DropShadowFilter(5,45,0x999999,0.5,4,4,1,5);
function dropPics ():void
{
var holder_mc:Sprite = new Sprite();
holder_mc.graphics.beginFill(0x000000);
holder_mc.graphics.drawRect(0,0, stage.stageWidth + 200,stage.stageHeight + 200);
holder_mc.graphics.endFill();
holder_mc.filters = [ds];
holder_mc.alpha =0;
Tweener.addTween(holder_mc,{height: 100,width:100,alpha: 1,time: 1,transition: "easeOut"});
for( var i:int=0 ; i < 8; i++)
{
//trace(i);
addChild(holder_mc);
holder_mc.x += 5;
holder_mc.y += 5;
}
}
dropPics();
ASKER
hi
i have tried your code ,and like mine, the i is ok but i get on stage only one holder_mc.
i think maybe it is the name (just read it) so i go to check that.
best regards
ron
i have tried your code ,and like mine, the i is ok but i get on stage only one holder_mc.
i think maybe it is the name (just read it) so i go to check that.
best regards
ron
ASKER
hi
i managed to fix the problem myself (remembering that once i had the same problem) but i do nor understand why it works (did not understood it then and do not understand it now:
i just need to loop the x and y of the stage itself, like that:
y += 110;
x += 110;
holder_mc.y -= y+50;
holder_mc.x -= x+50;
hope someone can explain this, cause it is a really a bizarre idea.
best regards
ron
i managed to fix the problem myself (remembering that once i had the same problem) but i do nor understand why it works (did not understood it then and do not understand it now:
i just need to loop the x and y of the stage itself, like that:
y += 110;
x += 110;
holder_mc.y -= y+50;
holder_mc.x -= x+50;
hope someone can explain this, cause it is a really a bizarre idea.
best regards
ron
I see what is going wrong
holder_mc.graphics.drawRec t(0,0, stage.stageWidth + 200,stage.stageHeight + 200);
This actuall draw a rectangle BIGGER than the stage
holder_mc.x += 5;
holder_mc.y += 5;
Draws a rectangel the SAME COLOR and places it on top of the other one since it has no border it all just looks like one big rectangle
try this line instead
holder_mc.graphics.drawRec t(0,0, stage.stageWidth - 200,stage.stageHeight -200);
holder_mc.graphics.drawRec
This actuall draw a rectangle BIGGER than the stage
holder_mc.x += 5;
holder_mc.y += 5;
Draws a rectangel the SAME COLOR and places it on top of the other one since it has no border it all just looks like one big rectangle
try this line instead
holder_mc.graphics.drawRec
ASKER
hi
thanks for the answer but as you can see i managed to fix the problem. the rectangle SHOULD be BIGGER than the stage cause it animate into position.
ron
thanks for the answer but as you can see i managed to fix the problem. the rectangle SHOULD be BIGGER than the stage cause it animate into position.
ron
Ah ok gotcha so you want a bunch of tiles to animate in and look like they are stacked ... are you wrting a card game :)
ASKER
Hi
yes that is my aim but its a gallery (it will be).
ron
yes that is my aim but its a gallery (it will be).
ron
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
hi
it is looping and i can make is scatter before that (obviously i appreciate the help). my problem now is to restrict the scattering to the stage size. seem easy but no:).
if you like you can continue to help via this question:
https://www.experts-exchange.com/questions/23482361/a-range-for-a-random-animation-AS3.html
since i solve this problem myself and then got stuck in that problem i asked a new question.
best regards
ron
it is looping and i can make is scatter before that (obviously i appreciate the help). my problem now is to restrict the scattering to the stage size. seem easy but no:).
if you like you can continue to help via this question:
https://www.experts-exchange.com/questions/23482361/a-range-for-a-random-animation-AS3.html
since i solve this problem myself and then got stuck in that problem i asked a new question.
best regards
ron