![]() |
|
||||||||||
|
|||||
|
Регистрация: Oct 2009
Сообщений: 47
|
У меня есть класс myMC, наследованный от класса MC. в myMC есть объект типа MovieClip с именем myMCObj, созданный вручную, без кода. Для myMC в as-файле написан код:
Но ролик не запускается, выдается ошибка Цитата:
|
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
public class MC extends MovieClip { public function MC() { super(); myMCObj = MovieClip(getChildByName("__myMCObj")); } protected var myMCObj:MovieClip; } public class MyMC extends MC { public function MyMC() { super(); myMCObj.rotation = 30; } } ps: Названия классов принято с большой буквы писать. Последний раз редактировалось udaaff; 20.02.2010 в 19:59. |
|
|||||
|
Регистрация: Feb 2009
Адрес: Ялта, Севастополь, Одесса
Сообщений: 52
|
всё бы было заметчтательно если бы не такая бяка:
package com.elser.labsandtests { import flash.display.MovieClip; public class MC extends MovieClip { public function MC() { super(); } }} package com.elser.labsandtests { import flash.display.MovieClip; import org.elser.labsandtests.MC; public class MyMC extends MC { private var myMCObj:MovieClip; public function MyMC() { super(); myMCObj = MovieClip(getChildByName("__myMCObj")); trace(myMCObj); // null } }} |
|
|||||
|
Регистрация: May 2003
Адрес: Tallinn
Сообщений: 3,182
|
уберите галку "Automatically declare stage instances" и декларируйте все DisplayObjects вручную
|
|
|||||
|
Регистрация: Feb 2009
Адрес: Ялта, Севастополь, Одесса
Сообщений: 52
|
Цитата:
Цитата:
|
|
|||||
|
Регистрация: May 2003
Адрес: Tallinn
Сообщений: 3,182
|
я и не писал, что должно заработать...просто это совет на будущее
|
|
|||||
|
Регистрация: Feb 2009
Адрес: Ялта, Севастополь, Одесса
Сообщений: 52
|
Поддерживаю CrazyFlasher`a - авто объявление инстансов на стейдже чаще всего зло - сам всегда снимаю, но суть вопроса не в этом - почему наследник мовиклипа запросто обращается к таким чайлдам а наследник наследника мовиклипа их не видит???
Последний раз редактировалось Elser; 03.03.2010 в 16:16. |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Должен всё видеть. Что у вас там за импорт какой-то странный во втором классе?
import org.elser.labsandtests.MC; |
|
|||||
|
Регистрация: Feb 2009
Адрес: Ялта, Севастополь, Одесса
Сообщений: 52
|
извиняюсь, первый код заработал после рестарта флеша
но проблема обнаружилась вот где: package com.elser.labsandtests { import flash.display.MovieClip; public class MC extends MovieClip { private var one:Object; private var two:Object; public var current:Object; public function MC(o:Object, t:Object) { super(); one = o; // вот если эти строки two = t; // закоментить и убрать аргументы у конструктора, current = one; // то работает, а с ними нет } }} package com.elser.labsandtests { import flash.display.MovieClip; import org.elser.labsandtests.MC; public class MyMC extends MC { private var stateOne:MovieClip; private var stateTwo:MovieClip; public function MyMC() { // super() // вот только если он тут в рабочем варианте все ок (см. комент в предке) stateOne = MovieClip(getChildByName("oneState")); stateTwo = MovieClip(getChildByName("twoState")); trace(stateOne+", "+stateTwo+", "+numChilds); // null, null, 2 // причем их имена в getChildByName правильные (копипаст) super(stateOne, stateTwo); //а надо сделать так, чтобы каждый потомок зарегил свойства, //которые контролируются обобщенным кодом предка. trace(current); } }} Последний раз редактировалось Elser; 04.03.2010 в 12:18. |
![]() |
![]() |
Часовой пояс GMT +4, время: 16:13. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|