|
Yup, That's indeed a good one. I use other functions for
it, but I did forget to mention it. Big drawback if you have to start from
scratch indeed.
Ben From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Arnoud Bos Sent: donderdag 20 juli 2006 15:34 To: 'Open Source Flash Mailing List' Subject: Re: [osflash] mtasc slower than IDE ??? Hi
Ben, Composition as you use
is another valid option, but now you can’t say Ball._x = 10;
So you have to manually
write all these move functions etc. yourself. I like to do visual
things with my Screen in the example. That’s why I extend the MovieClip
class. Arnoud Van:
[EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Namens Ben Smeets I for one, like to use
the way the code reads itself. I wanted to be able to say something
like class
Ball { private var
mcCanvas:MovieClip; public function
Ball(mcTarget:MovieClip, strName:String)
{
mcCanvas =
mcTarget.createEmptyMovieClip(strName,
mcTarget.getNextHighestDepht());
} } // Then us it
like var a:Ball = new
Ball(_root, "myBall"); This works great. The
only downside is that you have to add a destroy function to your classes
to clear the mcCanvas From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On
Behalf Of Hi
Bjorn, I like
the var goal:MovieClip =
target.createEmptyMovieClip(name, depth); goal.__proto__
= Screen.prototype; // redirect objects prototype
chain goal.__constructor__
= Screen; //
assign new constructor to the object
If I add the class to a lib symbol
in the Flash IDE I’d have to change a class name in the Flash ide as well when
refactoring. And in my case I don’t even need a
lib symbol at all. But it’s hacky I must
admit… I really like the
if( depth == undefined)
depth = parent.getNextHighestDepth(); part though. Simple but I
didn’t came up with it J. Arnoud Van: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] Namens
Bjorn Schultheiss Yes it seems like a
bit of a hack, here's how i have been creating movieclip instances for a
while. usage: var
loadDataset:LoadCrmUI = LoadCrmUI.createInstance( timeline, 45, 'LoadCrmUI_mc'
).init( 0, 0 ); class class
com.qdc.UI.panels.LoadCrmUI extends
MovieClip /* public function
init( x : Number, y : Number ) :
LoadCrmUI rm.addEventListener(
'ALL', this ); Regards, Bjorn
Schultheiss Senior Flash
Developer QDC
Technologies From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On
Behalf Of Ben Smeets Ah i see. I am missing
the point, since why not let a Screen class extend Movieclip and let it create a
movieclip in it's constructor? But that's not meant to be criticism though
:) Everybody his/hers own way of solving things. I always find it interesting to
see other peoples solutions for common problems. Cheers,
Ben From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On
Behalf Of I don’t know
J In my app i use
screens. These are actually extended movieclips (I like to move them around
etc.) But I don’t want to
make a library item of the Screen. All assets that go into the
screen are made programmically
(that’s not an English word for sure J) NB the create function
is a method of my screen class. So I create an
movieclip (by using a static factory method) and then I reassign the
Prototype from
movieclip to Screen as well as the constructor. Finally I cast it to
Screen. And then I have a
screen object with a visual representation on screen without
the Need for a library
representation of the Screen in the Flash IDE. To be short, I like to
keep as much of my apps in the code so that I don’t have to switch between Flash
ide and FlashDevelop when
developing. Btw th GDispatcher is
needed to broadcast screen events to my GUI manager that moves the screens
around etc… Hope that
helps, arnoud Van:
[EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Namens Ben Smeets Looks interesting...
but what does it do exactly? Grt,
Ben From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On
Behalf Of Hi
Martin, Strange, cause i use
delegates al the time as well as event dispatching. Also the project has
30+ classes with some 1000 rules of code in them. What I do use is the
prototype hack like: (this is the create
function in my Screen class) public static function
create(target:MovieClip, name:String, depth:Number, visible:Boolean) : Screen
{
// create the visual representation of the screen.
// uses a hack to prevent needles library assets with linkage is's or classes
attached
var goal:MovieClip = target.createEmptyMovieClip(name,
depth);
goal._visible = visible;
goal.__proto__ = Screen.prototype; // redirect
objects prototype chain
goal.__constructor__ =
Screen; //
assign superclass constructor to the object
var instance:Screen = Screen(goal); // force right
class
GDispatcher.initialize(instance);
// make
dispatcher
return instance;
// return the instance
} This I use in many
classes that have a visual representation. Maybe there is
something in this code MTASC doesn’t like too much. It does work however
J Thanx, Arnoud |
_______________________________________________ osflash mailing list [email protected] http://osflash.org/mailman/listinfo/osflash_osflash.org
