|
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 Van:
[EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]sflash.org]
Namens Martin Heidegger Well I recognized the MM
Compiler (7&8) to be slower if you use complex relationships. The more you
type the slower it gets. Delegations and complex structures help to confuse it
further. Perhaps for the cases where it uses almost no typing (just preparing
bytecode from methods) it might be almost same fast. Just thoughts... 2006/7/18,
|
_______________________________________________ osflash mailing list [email protected] http://osflash.org/mailman/listinfo/osflash_osflash.org
