![]() |
|
||||||||||
|
|||||
|
Регистрация: Feb 2006
Сообщений: 580
|
var mn:MovieClip = this;
var tree:Number = setInterval(create, 1000);
//
function create():Void {
var mc:mcExtended = mn.attachMovie('anc', 'anc', mn.getNextHighestDepth());
clearInterval(tree);
}
Цитата:
Код as файла расширения класса: Мувиклип в библиотеке создан стандартным способом, класс as2 не подписан. Но, вот такой код работает нормально. Ошибок не выдает. Подскажите, где ошибка? |
|
|||||
|
Регистрация: Feb 2006
Сообщений: 580
|
Вот такой код тоже работает:
var mn:MovieClip = this;
var tree:Number = setInterval(this, 'create', 1000);
//
function create():Void {
var mc:mcExtended = this.attachMovie('anc', 'anc', this.getNextHighestDepth());
}
|
|
|||||
|
|
|
|||||
|
Регистрация: Feb 2006
Сообщений: 580
|
Ventur
А можите объяснить в чем ошибка моя? Мне хочется понять теоретически. Прочувствовать, так сказать. ![]() |
|
|||||
|
проходит потому что this undefined в этом контексте, присваивай кому хошь..
попытка присвоить MovieClip переменной с типом mcExtended чтоб не ругался: но anc тогда должен быть залинкован в библиотеке на mcExtended.as, иначе это бред выходит.. зы: классы с прописной именовать принято.. Последний раз редактировалось silin; 21.01.2007 в 21:50. |
|
|||||
|
>но anc тогда должен быть залинкован в библиотеке на mcExtended.as
Совершенно да |
|
|||||
|
Регистрация: Feb 2006
Сообщений: 580
|
Цитата:
var tree:Number = setInterval(this, 'create', 1000);
//
function create():Void {
trace(typeof(this)) //movieclip
var mc:mcExtended = this.attachMovie('anc', 'anc', this.getNextHighestDepth());
}
Последний раз редактировалось pkfun; 21.01.2007 в 22:04. |
|
|||||
|
setInterval(this, 'create', 1000) и setInterval(create, 1000) разные вещи: у первой create есть this (первый параметр setInterval) у второй нет..
в примере Ventur компилятор не ругается, потому как он не знает тип this, то что выдает trace это уже рантайм, (да и в твоем примере с this наверное тоже, а не потому что undefined) зы: вся эта типизация в AS2 весьма условная штука - только на уровне отслеживания ошибок компилятором, естестественно только там где он может это сделать.. Последний раз редактировалось silin; 21.01.2007 в 22:21. |
|
|||||
|
Регистрация: Feb 2006
Сообщений: 580
|
silin
Честно говоря, не понимаю. Вы скажите mn и this в моем примере это одно и тоже или нет. Если нет, то чем отличаются друг от друга. Сейчас я думаю, что mn и this это одно и то же - объект типа MovieClip указывающий на основную временную диаграмму. ![]() Цитата:
компилятор отслеживает тип this, а в строке: просто считает, что у this нет типа(не задан)? Как же быть? Как мне корректно сделать этот код? Последний раз редактировалось pkfun; 21.01.2007 в 22:33. |
|
|||||
|
в твоем примере mn типизованная переменная, компилятор знает ее тип, потому и ругается
в функции на что указывает this выяснится в рантайме (эту create можно ведь приложить к любому объекту или к разным..), компилятор не может знать тип this в create поэтому на всякий случай за ошибку не считает.. |
![]() |
![]() |
Часовой пояс GMT +4, время: 16:09. |
|
|
« Предыдущая тема | Следующая тема » |
|
|