Hi,
I’m still in the process of completely moving from AS2 to AS3 and I felt confident how to do this in AS2 but AS3 is much slower to work with. I’m generally ok with all the syntax changes but I’d continued to put all the code into my FLA and not multiple classes. The primary reason for this has been because I still need to visually design how parts work and use that repeatedly in different pages and sections (and for web projects the big files are all images and data which I load externally anyway). Yet as projects get bigger and we have multiple team members we need to break it all up.
So I’m taking a simple use case of a button. I want to reuse one button style with a number of different states and functions contained within it. It has some methods I can use to pass it a new title or set properties like whether it is Active or Inactive, Selectable or Visitable and all of those properties define different responses when events occur. All that code lives in a class, but that’s linked to graphics within a movieClip that are designed through the Authoring tool (visually not code). Thus I have a final button.swf
How then do I reuse that Button across other pages (in different FLAs) that are designed in the Authoring tool and where I can update the button without updating all of the finally composed SWFs of those pages. Using a shared library asset slightly makes sense but that still requires recompiling the project each time and does that bring through it’s linked classes too?
It doesn’t seem right to need to load in the button.swf repeatedly, shouldn’t I be able to load it in once and then it’s available to the whole application to just initiate it as I want it, eg. button1:myButton=new MyButton() , and set it’s properties each time.
Also I can envisage that since I’m doing this in AS3 I’ll get errors because I want to instantiate something that a parent SWF is loading in. Then the issue I struggle to understand how to deal for AS3 is how to tell the buttons to target a _root function with individual parameters that I set in it upon creation.
I’ve made a diagram of the files involved.