![]() |
|
||||||||||
|
|||||
|
Значит не на сцене. Может, просто куда то вложен, но на сцене он не отображается.
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
.
|
Цитата:
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
А если дать фокус Craft'у?
[/quote] Ого, Димка, а ты уверен, что у него Craft рутом повешен? |
|
|||||
|
Psycho Tiger
даю руку на отсечение, что на сцене! =] Сам мышкой перетащил из библиотеки, и вкладывать его некуда он единственный мувик в флэшке. dimarik Не помогло etc а что значит "рутом повешен"? ... В ходе дальнейших экспериментов, решил попробовать решить проблему через наследование, и нашел вот такую странную закономерность: Создал fla файл, создал мувиклип Задал ему базовый класс (ну тот что в свойствах мувиклипа так назван, прошу меня не ругать опять за эту, совсем не мою выдумку ):package classes { import flash.display.MovieClip; public class R2Class extends MovieClip { public function R2Class():void { trace("r2 class called"); } } } package classes.assisted { import classes.R2Class; public class AssistedClass extends R2Class { public function AssistedClass():void { trace("assistedClass called"); } } } package classes { import flash.display.MovieClip; import classes.assisted.AssistedClass; public class R1Class extends MovieClip { var AC:AssistedClass = new AssistedClass(); public function R1Class():void { trace("r1class called"); } } } ![]() Но если я в функции конструкторе класса "R2Class" пишу То компилятор выдает мне: r2 class called TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null". at classes::R2Class() at classes.assisted::AssistedClass() at classes::R1Class() at r1() at flash.display::Sprite/constructChildren() at flash.display::Sprite() at flash.display::MovieClip() r2 class called 400 Почему такая несправедливость в мире ActionScript3.0 ? Добавлено через 4 минуты Вобще мне больше всего интересно как делаються профессиональные крупные проекты. Управляют ли там отдельные классы отображаемыми объектами полностью, или вспомогательные классы используються лишь для приема-возврата значений? Я клоню к тому, что может я вобще порю ужасную ерись и все делаеться совсем не так? ![]() |
|
|||||
|
Экземпляр AssistedClass (переменная AC, которая кстати не должна начинаться с заглавной буквы) в момент создание (т.е. вызова конструктора) НЕ НАХОДИТСЯ в дисплей листе, поэтому его свойство stage нулевое. Слушайте Event.ADDED_TO_STAGE
|
|
|||||
|
Угу, fljot прав. Давай сюда руку)
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Вот спасибо, друзья =)
Для потомков оставлю запись решения:Базовый класс мувиклипа: package classes { import flash.display.MovieClip; import flash.events.*; import classes.assisted.AssistedClass; public class R1Class extends MovieClip { var AC:AssistedClass = new AssistedClass(); public function R1Class():void { addChild(AC); trace("r1class called"); } } } package classes.assisted { import flash.events.*; import flash.display.MovieClip; public class AssistedClass extends MovieClip { public function AssistedClass():void { this.addEventListener(Event.ADDED_TO_STAGE, ats); trace("assistedClass called"); } function ats(e:Event):void { trace("SS"); trace(stage.stageHeight); } } } |
|
|||||
|
Как то не круто. Мы прокачаем ваш класс )
package classes.assisted
{
import flash.events.*;
import flash.display.MovieClip;
public class AssistedClass extends MovieClip
{
public function AssistedClass() //тип у конструктора - это круто)
{
if (stage) ats();
else super.addEventListener(Event.ADDED_TO_STAGE, ats);
trace("assistedClass called");
}
private function ats(e:Event = null):void
{
super.removeEventListener(Event.ADDED_TO_STAGE, ats);
trace("SS");
trace(stage.stageHeight);
}
}
}
__________________
Тут мужик танцует и поёт про флэш |
![]() |
![]() |
Часовой пояс GMT +4, время: 16:36. |
|
|
« Предыдущая тема | Следующая тема » |
|
|