![]() |
|
||||||||||
|
|||||
|
Регистрация: Jan 2006
Сообщений: 103
|
Допустим есть клас myClass extends MovieClip
в нем есть private var a Вопрос: почему я могу обратиться к переменной а и записать в неё значение из любого другого места синтаксисом myClassExamplare.a="ляля"? |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Потому что AS2 не существует и проверка обращений к переменным есть только на стадии компиляции, что можно легко обойти.
|
|
|||||
|
Регистрация: Jan 2006
Сообщений: 103
|
что-то я не понял.
зачем же тогда вообще есть ключевое слово private для переменных в классе если они все равно остаются публичными? и как это: AS2 не существует? ![]() |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Потому что AS2 существует только для программера. А в выходном файле обычный AS1 фактически и никакой там типизации нет.
Впрочем, приложите исходник, посмотрим, что там не так. |
|
|||||
|
Регистрация: Jan 2006
Сообщений: 103
|
да я вроде понял.
Я же свой объект этого класса создаю на сцене стандартным методом attachMovie и обращаюсь к нему как к мувику..а поскольку мувик динамический класс, он вместо обьявленной мной приватной а создает новую. И в дальнейшем используется именно она. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
В таком случае нужно использовать кастинг. var mc:AnyClass = AnyClass(this.attachMovie(…)). Тем самым давать понять компилятору, что объект заданного типа.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 00:40. |
|
|
« Предыдущая тема | Следующая тема » |
|
|