Great tips! John. Sorry for jumping in, Dimitrios. In my case, my desktop
project got about 140 classes and many circular references. It'll take
forever to take a snapshot from "level0" with recursive option on. The
snapshot returns nodes of the 1st tier from level0 if recursive option is
turned off. But nothing will show up when clicking on a node that is too
complex. So, what I had to do is to take a snapshot from a deep down path.
For example in my case:
_level0.gameBoard.gamePanel.operationPane.accViews.shipView. From that
point, things seem started looking ok.
Thanks,
Doug
----- Original Message -----
From: "John Grden" <[EMAIL PROTECTED]>
To: "Flashcoders mailing list" <[email protected]>
Sent: Saturday, December 17, 2005 12:27 PM
Subject: Re: [FlashCoders] game slowing down - eventListener
Good! you're looking around and getting comfortable with doing so in Xray!
Ok, some tips:
1. When browsing through global, you'll see your packages and objects.
You'll see all classes - instance, static, singleton etc. You *can* see
static properties/objects through global since that's where they live/are
instanced. Singletons and Instanced classes can be where they're
instanced. So, whatever timeline/movieclip has created the Object, that's
where you can take a look through it / execute calls against it with Xray.
2. If you want to save time with browsing with the treeview, you can always
use the trace/execute window to verify an objects/propertie's existance.
(IE: _level0.main.myMovieClip.objX)
3. In your class, if it extends a movieclip, you could put in an xray trace
(_global.tt("MyMovie", this);
Then just copy and paste the path that spits out in the trace window and
start checkingyour objects and props from there.
Make sense?
Let me know if you other questions. With xray, there's usually 3-4 ways to
get an an object and mess with it ;)
On 12/17/05, Dimitrios Bendilas <[EMAIL PROTECTED]> wrote:
Hello John,
Sorry for the late reply, I wanted to run
some tests before answering back.
I'm aware of the way the garbage collector works
(even though I'm a little confused with object parameters
stored in the inline functions inside Delegates, if they
get garbage collected after all or not).
Throughout my framework and the custom code for the game
I pay much attention to deleting all object references.
I've used xray in the past sometimes. I did this now too
but I'm having some troubles.
The only lines in my .fla are
import ....Application
Application.main(_root);
Where in xray should I be looking for object instances?
I can see all movieclips if I take a snapshot of _level0
but if I want to see the instances of the Tile objects,
or the TileManager, or the Countdown objects where
should I look? I tried _global.com.zefxis which is where
all the packages reside but all I see is functions (Classes)
and no objects.
e.g.
_global.com.zefxis.solarwind snapshot gives me:
animation (object)
Animation (function)
Animations (function)
EaseFunctions (function)
RelativeMovement (function)
Sequence (function)
Any clues?
Thank you!
Dimitrios
----- Original Message -----
From: "John Grden" <[EMAIL PROTECTED]>
To: "Flashcoders mailing list" <[email protected]>
Sent: Thursday, December 15, 2005 5:35 PM
Subject: Re: [FlashCoders] game slowing down - eventListener
Hey Dimitrios, I know this might be covering something you already
understand, but thought to say it outloud just in case. An object lives
as
long as there is reference to it in memory.
So, in this scenario below "obj" lives on even though I've tried to delete
the original reference to it ("tt" is Xray's trace method):
var obj:Object = new Object();
obj.prop = "here";
var a = obj;
var b = a;
tt("all: obj/a/b", obj, a, b);
delete obj;
tt("delete obj: obj/a/b", obj, a, b);
delete a;
tt("delete a: obj/a/b", obj, a, b);
delete b;
tt("delete b: obj/a/b", obj, a, b);
//++++++++++++++++++++++++
Which traces out
//++++++++++++++++++++++++
(41) all: obj/a/b:
prop = here
prop = here
prop = here
(41) delete obj: obj/a/b: undefined ::
prop = here
prop = here
(41) delete a: obj/a/b: undefined :: undefined ::
prop = here
(42) delete b: obj/a/b: undefined :: undefined :: undefined
With a tile based game and all the possible references you're probably
running, you might have to take a closer look at how objects are being
destroyed for garbage collection. You can easily see if they're still
alive
using xray as well as delete them at runtime using the execute panel with
xray to see if that helps your memory issues a performance. Also, try
changing the visibility of your movieclips at runtime with Xray or movie
items off stage one at a time at runtime to see who's hoggin' the CPU etc.
Check out the video on the Property Inspector for xray for working with
objects/movieclips at runtime:
http://labs.blitzagency.com/wp-content/xray/videos/tutorials/indexFlash.html#Overview.propertyInspectorOverview
_______________________________________________
Flashcoders mailing list
[email protected]
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
--
John Grden - Blitz
_______________________________________________
Flashcoders mailing list
[email protected]
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
_______________________________________________
Flashcoders mailing list
[email protected]
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders