Hey Steven / Newsdee. Thx.

Newsdee : i tried deleting cache [FlashDevelop] / ASOs [Flash IDE] before
and it didn't help. I don't see how casting can solve the problem, it looks
like the compiler itself is not acknowledging an inheritance connection, and
i am not using any special drive config.

Steven: you guys seem to be doing great work :). I can refactor into
composition but that would probably be my last resort. especially since
these classes extends MovieClip and the movie clips themselves sit on stage
already [to simplify design issues .. lots of mcs on a world map kinda
thing].

heres more info on my code:

i am trying to compile a flash8 project and the compiler seems to break an
inheritance connection between 2 classes.
movieclips are on stage and their library symbols are linked to the Country
class.
this worked but after making a few minor changes to AbstractMarker [added a
method] the compiler suddenly stopped recognizing the inheritance connection
between BoundedMarker and AbstractMarker.
code :

class marker.AbstractMarker extends RadioButton implements Marker {

   function AbstractMarker() {
   }

   // methods

   public function testMethodBaseClass() {}

}

import org.as2lib.env.reflect.ReflectUtil; // just so you know ReflectUtil
is from as2lib

class marker.BoundedMarker extends AbstractMarker {

   function BoundedMarker() {
       super();

       trace(ReflectUtil.getTypeNameForInstance(this.__proto__));
                // traces BoundedMarker [since
movieclips are based on Country]

       trace(ReflectUtil.getTypeNameForInstance(this.__proto__.__proto__));
// traces Object [!! ignores AbstractMarker]

       trace(this.test2);
// traces [type Function]

       trace(this.testMethodBaseClass);
// traces undefined

       // more code of course ...

   }

   public function test2() {}

}

class marker.Country extends BoundedMarker {

   private function Country() {
   }

}

and

trace(mc instanceof Country) is true
trace(mc instanceof BoundedMarker) is true

but

trace(mc instanceof AbstractMarker) is false

im using FlashDevelop and MTASC but compiling via the flash8 env as well.

I have actually made some wierd progress last night. What i did is moved
AbstractMarker out of its package. compiling it using MMC [flash ide]. then
compiling it using MTASC [through FlashDevelop], this time it worked. and
then moving it back into the marker package and recompiling with MMC and
then MTASC and it worked.

so i believe the solution is a combination of the following : a compiler /
a bug /  flashdevelop /  packages /  imports.

anyone any ideas ? how do i even start finding the problem ? is this some
kind of flash bug ?

regards and sorry for the long post
Danix


On 15/02/07, Steven Sacks | BLITZ <[EMAIL PROTECTED]> wrote:

> - Refactor to simpler class relationships (worst case but it
> did the trick for me - had to duplicate code, ewww).

You could use Composition instead, which reduces the need for normal
class inheritance.
_______________________________________________
Flashcoders@chattyfig.figleaf.com
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com

_______________________________________________
Flashcoders@chattyfig.figleaf.com
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com

Reply via email to