# Referencing

**URL:** <https://forum.kirupa.com/t/referencing/265074>\
**Category:** flash\
**Created:** [July 3, 2008, 4:39pm UTC](https://forum.kirupa.com/t/referencing/265074 "2008-07-03T16:39:45Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![Dart](https://avatars.discourse-cdn.com/v4/letter/d/7bcc69/32.png) [@Dart](https://forum.kirupa.com/u/Dart)\
**Post date:** [July 3, 2008, 4:39pm UTC](https://forum.kirupa.com/t/referencing/265074/1 "2008-07-03T16:39:45Z")

</div>

Hi There,

I have odd problem here ☹

I´m not able to reference property [COLOR=YellowGreen]“prop”[/COLOR] in class Level.

FLA file:

```auto

var mainLogic:Level = new Level();

```

Level.as:

```auto

package {

    import flash.display.Sprite;

    public class Level extends Sprite {
        public var prop:int = 5;

        public function Level():void {
            var h:Tetris_Shape = new Tetris_Shape();
        }
    }
}

```

Tetris\_Shape.as:

```auto

package {

    import flash.display.MovieClip;

    public class Tetris_Shape extends MovieClip {

        public function Tetris_Shape():void {
            trace(parent.prop);

        }
    }
}

```

I don´t know why, but it throws error 1119…

1119: Access of possibly undefined property prop through a reference with static type flash.display:DisplayObjectContainer.

Thank you for your responses. 👼

---

<div class="post-metadata">

**Author:** ![sekasi](https://avatars.discourse-cdn.com/v4/letter/s/5f8ce5/32.png) [@sekasi](https://forum.kirupa.com/u/sekasi)\
**Post date:** [July 3, 2008, 4:48pm UTC](https://forum.kirupa.com/t/referencing/265074/2 "2008-07-03T16:48:41Z")

</div>

trace(parent.prop);

swap with

trace(MovieClip(parent).prop);

and you need to addChild your Tetris\_Shape

---

<div class="post-metadata">

**Author:** ![TheCanadian](https://avatars.discourse-cdn.com/v4/letter/t/67e7ee/32.png) [@TheCanadian](https://forum.kirupa.com/u/TheCanadian)\
**Post date:** [July 3, 2008, 10:59pm UTC](https://forum.kirupa.com/t/referencing/265074/3 "2008-07-03T22:59:50Z")

</div>

You should use _Sprite(parent).prop_, **BUT** you ultimately can’t use _parent_ in a classes constructor because there is no possible way that it can be a child of another DOC until after it is instantiated (which includes executing the constructor).

You should run the code that requires access to the parent a function which gets called after the instance is added to the display list. It can be called by using the Event.ADDED event. Something like this:

```auto
package {
	import flash.display.Sprite;
	import flash.events.Event;
	public class Test extends Sprite {
		public function Test() {
			addEventListener(Event.ADDED, init);
		}
		private function init(evt:Event):void {
			trace(parent);
		}
	}
}

```

---

<div class="post-metadata">

**Author:** ![Dart](https://avatars.discourse-cdn.com/v4/letter/d/7bcc69/32.png) [@Dart](https://forum.kirupa.com/u/Dart)\
**Post date:** [July 4, 2008, 2:43pm UTC](https://forum.kirupa.com/t/referencing/265074/4 "2008-07-04T14:43:16Z")

</div>

I made this change :

```auto

package {

    import flash.display.MovieClip;
    import flash.display.Sprite;
    import flash.events.Event;

    public class Tetris_Shape extends MovieClip {

        public function Tetris_Shape():void {

            addEventListener(Event.ADDED, init);
        }
        private function init(evt:Event):void {
            trace(Sprite(parent).prop);
        }

    }
}

```

and i added Tetris\_Shape to Display List

```auto

package {

    import flash.display.Sprite;

    public class Level extends Sprite {
        public var prop:int = 5;

        public function Level():void {
            var h:Tetris_Shape = new Tetris_Shape();
            this.addChild(h);
        }
    }
}

```

but i´m still getting error :  
1119: Access of possibly undefined property prop through a reference with static type flash.display:Sprite.

😑

---

<div class="post-metadata">

**Author:** ![sekasi](https://avatars.discourse-cdn.com/v4/letter/s/5f8ce5/32.png) [@sekasi](https://forum.kirupa.com/u/sekasi)\
**Post date:** [July 4, 2008, 2:53pm UTC](https://forum.kirupa.com/t/referencing/265074/5 "2008-07-04T14:53:28Z")

</div>

I don’t know why Canadian said you should use Sprite() because your Tetris\_Shape extends a movieclip…

replace  
trace(Sprite(parent).prop);  
with  
trace(MovieClip(parent).prop);

---

<div class="post-metadata">

**Author:** ![Dart](https://avatars.discourse-cdn.com/v4/letter/d/7bcc69/32.png) [@Dart](https://forum.kirupa.com/u/Dart)\
**Post date:** [July 4, 2008, 3:19pm UTC](https://forum.kirupa.com/t/referencing/265074/6 "2008-07-04T15:19:29Z")

</div>

I replaced [COLOR=Red]trace(Sprite(parent).prop);[/COLOR] with [COLOR=Red]trace(MovieClip(parent).prop);[/COLOR]

But, it threw an error :  
TypeError: Error #1034: Type Coercion failed: cannot convert Level@31cfa61 to flash.display.MovieClip.

---

<div class="post-metadata">

**Author:** ![sekasi](https://avatars.discourse-cdn.com/v4/letter/s/5f8ce5/32.png) [@sekasi](https://forum.kirupa.com/u/sekasi)\
**Post date:** [July 4, 2008, 3:28pm UTC](https://forum.kirupa.com/t/referencing/265074/7 "2008-07-04T15:28:57Z")

</div>

actually… my bad. Both me and Canadian were wrong. I misread it a little bit since the parent you are referencing is a sprite and the child is the movieclip…

What you SHOULD do, is cast it to your class, and not the generic sprite class. Sprite doesn’t have a property called prop, but your document class does.

try this;

trace(Level(parent).prop);

---

<div class="post-metadata">

**Author:** ![Dart](https://avatars.discourse-cdn.com/v4/letter/d/7bcc69/32.png) [@Dart](https://forum.kirupa.com/u/Dart)\
**Post date:** [July 4, 2008, 3:59pm UTC](https://forum.kirupa.com/t/referencing/265074/8 "2008-07-04T15:59:00Z")

</div>

Thank you very much guys :rambo:  
It is working :pope:

---

<div class="post-metadata">

**Author:** ![Dart](https://avatars.discourse-cdn.com/v4/letter/d/7bcc69/32.png) [@Dart](https://forum.kirupa.com/u/Dart)\
**Post date:** [July 4, 2008, 4:21pm UTC](https://forum.kirupa.com/t/referencing/265074/9 "2008-07-04T16:21:08Z")

</div>

May I have a question ? 🙂

In which case I could use Sprite(parent.prop) or MovieClip(parent.prop).

Thank you again 🙂

---

<div class="post-metadata">

**Author:** ![sekasi](https://avatars.discourse-cdn.com/v4/letter/s/5f8ce5/32.png) [@sekasi](https://forum.kirupa.com/u/sekasi)\
**Post date:** [July 4, 2008, 4:33pm UTC](https://forum.kirupa.com/t/referencing/265074/10 "2008-07-04T16:33:21Z")

</div>

Sprite(parent).prop would never really work since no Sprites have the propery ‘prop’. MovieClips are dynamic class though so that would work if your parent was a generic movieclip class.

---

<div class="post-metadata">

**Author:** ![Dart](https://avatars.discourse-cdn.com/v4/letter/d/7bcc69/32.png) [@Dart](https://forum.kirupa.com/u/Dart)\
**Post date:** [July 4, 2008, 4:41pm UTC](https://forum.kirupa.com/t/referencing/265074/11 "2008-07-04T16:41:44Z")

</div>

Ahh… thank you I get it now 🙂

---

<div class="post-metadata">

**Author:** ![TheCanadian](https://avatars.discourse-cdn.com/v4/letter/t/67e7ee/32.png) [@TheCanadian](https://forum.kirupa.com/u/TheCanadian)\
**Post date:** [July 4, 2008, 11:43pm UTC](https://forum.kirupa.com/t/referencing/265074/12 "2008-07-04T23:43:03Z")

</div>

[QUOTE=sekasi;2353627]What you SHOULD do, is cast it to your class, and not the generic sprite class. Sprite doesn’t have a property called prop[/QUOTE]  
Good call.
