![]() |
|
||||||||||
|
|||||
|
[+1.4 18.06.07]
Регистрация: May 2007
Адрес: Moscow
Сообщений: 263
|
Доброго времени суток.
Поясните пожалуйста: почему когда я динамически создаю экземпляр класса, он перестает "видеть" сцену? package {
import flash.display.Sprite;
public class E extends Sprite {
public function E(){
trace("Stage(E): "+stage);
var s:Sprite=new F;
}
}
}
package {
import flash.display.Sprite;
public class F extends Sprite {
public function F(){
trace("Stage(F): "+stage);
}
}
}
Stage(E): [object Stage] Stage(F): null
__________________
А я Томат. |
|
|||||
|
|
|
|||||
|
[+1.4 18.06.07]
Регистрация: May 2007
Адрес: Moscow
Сообщений: 263
|
Не... Вопрос в том, как увидеть stage в момент создания нового sprite,(в данном случае из класса "F"). Есть вариант поместить ссылку на stage в static-переменную или передавать ее в конструктор класса при создании каждого нового спрайта, но, мне кажется, это "кривые" решения...(Или я не прав?) Может есть варианты?
---- Собственно, потребность состоит в том, чтобы одни спрайты создавали другие, те,в свою очередь, создавали третьи и т.д., но при этом мне нужно, чтобы новые спрайты создавались не внутри тех, которые их создают, а на сцене - в процессе реализации натолкнулся на проблему со строкой "stage.addChild.." т.к. спрайт не "видит" сцены.. Объяснил как мог..))
__________________
А я Томат. Последний раз редактировалось Torero; 19.09.2007 в 04:08. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Можно подписаться на ADDED_TO_STAGE и потом дальше работать.
|
|
|||||
|
Регистрация: Aug 2007
Сообщений: 467
|
Когда делаешь var s:Sprite=new F;, экземпляр класса Sprite создаеться только в памяти и он еще не знает кто у него stage! И когда ты этот спрайт добавишь на сцену, только тогда он узнает кто же у него этот stage!
![]() |
|
|||||
|
[+1.4 18.06.07]
Регистрация: May 2007
Адрес: Moscow
Сообщений: 263
|
Спасибо за ответы.
Решил проблему через static-переменную, ссылающуюся на stage - насчет правильности сомнительно, но писанины минимум.. --- Цитата:
__________________
А я Томат. Последний раз редактировалось Torero; 20.09.2007 в 03:43. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Да, хоть оператор new позволяет не использовать скобки (это одна из загадок, почему), надо не лениться и писать.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 10:48. |
|
|
« Предыдущая тема | Следующая тема » |
|
|