Hello Kevin,
Did you use push method on your snowflakes array ?
Or have you tried this :
for each (var sn:Sprite3D in snowflakes)
{
sn.y -=10;
if(sn.y < 0)
{
sn.y = 300;
}
trace(sn.y);
}
--
Aji Pamungkas
On Wed, Nov 3, 2010 at 8:58 AM, Aji Pamungkas
<[email protected]>wrote:
> Hello Nick,
>
> The question is, what would you do if they stop ? Currently, you just set
> them to stay at the same position.
>
> For example, let's say object mcs number 0 (arrayOf3DAssets[0]), at frame
> n, it's absolute value of deltaX, deltaY and deltaZ are less than 0.1, and
> you set :
> arrayOf3DAssets[0].x = newPosX = changingArrayOfXYZLocations[0][0];
> arrayOf3DAssets[0].y = newPosY = changingArrayOfXYZLocations[0][1];
> arrayOf3DAssets[0].z = newPosZ = changingArrayOfXYZLocations[0][2];
>
> Next Frame, at frame n+1,
> deltaX = arrayOf3DAssets[0].x - changingArrayOfXYZLocations[0][0];
> deltaY = arrayOf3DAssets[0].y - changingArrayOfXYZLocations[0][1];
> deltaZ = arrayOf3DAssets[0].z - changingArrayOfXYZLocations[0][2];
>
> Obviously, deltaX, deltaY and deltaZ are 0. Why ?
> Because x,y,z value of arrayOf3DAssets[0] has the same value with [0], [1]
> and [2] of changingArrayOfXYZLocations[0]. And because 0 is less than
> 0.1, arrayOf3DAssets[0] will do this again :
> arrayOf3DAssets[0].x = newPosX = changingArrayOfXYZLocations[0][0];
> arrayOf3DAssets[0].y = newPosY = changingArrayOfXYZLocations[0][1];
> arrayOf3DAssets[0].z = newPosZ = changingArrayOfXYZLocations[0][2];
>
> again, again and again in the next frames. arrayOf3DAssets[0] will never
> move, until you change the value in :
> changingArrayOfXYZLocations[0][0];
> changingArrayOfXYZLocations[0][1];
> changingArrayOfXYZLocations[0][2];
>
>
> --
> Aji Pamungkas
>
> On Wed, Nov 3, 2010 at 7:18 AM, Nick <[email protected]> wrote:
>
>> I'm having a similar issue with MovieClipSprite in v3.6.0 They move
>> initially, but as soon as they get to where they're going, they won't
>> move anymore. As long as they keep moving, they'll continue to accept
>> a new location (from changingArrayOfXYZLocations) and move to it. But
>> as soon as they stop moving, that's it, they refuse to move anymore.
>> There will be a few assets on stage and some will move while the
>> others stop. If I take out the lines that set the assets specifically
>> to where they're going when they get close and instead never let them
>> get to their destination, then they keep working as expected.
>>
>> var mcs:MovieClipSprite;
>>
>> var deltaX:Number;
>> var stepX:Number;
>> var newPosX:Number;
>> var deltaY:Number;
>> var stepY:Number;
>> var newPosY:Number;
>> var deltaZ:Number;
>> var stepZ:Number;
>> var newPosZ:Number;
>>
>> for (i = 0; i < arrayOf3DAssets.length; i++)
>> {
>> mcs = arrayOf3DAssets[i];
>>
>> deltaX = mcs.x - changingArrayOfXYZLocations[i][0];
>> stepX = deltaX / SPEED;
>> newPosX = mcs.x - stepX;
>> deltaY = mcs.y - changingArrayOfXYZLocations[i][1];
>> stepY = deltaY / SPEED;
>> newPosY = mcs.y - stepY;
>> deltaZ = mcs.z - changingArrayOfXYZLocations[i][2];
>> stepZ = deltaZ / SPEED;
>> newPosZ = mcs.z - stepZ;
>>
>> if (Math.abs(deltaX) < .1) newPosX =
>> changingArrayOfXYZLocations[i]
>> [0];
>> if (Math.abs(deltaY) < .1) newPosY =
>> changingArrayOfXYZLocations[i]
>> [1];
>> if (Math.abs(deltaZ) < .1) newPosZ =
>> changingArrayOfXYZLocations[i]
>> [2];
>>
>> mcs.x = newPosX;
>> mcs.y = newPosY;
>> mcs.z = newPosZ;
>> }
>>
>> _camera3D.hover();
>> _view.render();
>>
>> Any thoughts or suggestions?
>>
>> Thanks, Nick
>
>
>