![]() |
[AS2]метод "не видит" свойство класса
есть следующий класс:
Код:
class game.MusicFile extends game.MusicObject {[22:29:180] info: game.MusicFile.load() mp3 started loading [22:29:180] debug: game.MusicFile.load() setting onLoad [22:29:190] debug: game.MusicFile.load() onLoad set [22:29:350] debug: game.MusicFile.onLoad() onLoad called. loaded successfully [22:29:350] debug: game.MusicFile.onLoad() _level0 [22:29:350] debug: game.MusicFile.onLoad() [object Object] [22:29:350] info: game.MusicFile.onLoad() mp3file=undefined // фак!!! почему??? объясните дураку, почему мне говорят, что свойства mp3file не существует? ведь методом выше оно было, а методом ниже его уже нет. что я делаю не так? заранее спасибо за помощь. |
потому что ты теперь находишься в другой области видимости, используй класс mx.utils.Delegate
Код:
mp3file.onLoad = mx.utils.Delegate(this,this.onLoad) |
а какой области видимости я нахожусь? и почему в другой, а не в своём объекте?
спасибо за помощь :) |
ты находишься в области видимости объекта Sound. поэтому и не видит.
|
Цитата:
то есть использование Delegate - это обычный метод, который используют в таких случаях? |
Да это стандарт, в старших языках(Java, C#) есть даже специальные поля в классе, делегаторы,во флэше пока такого нету зато есть класс кое как эмулирующий данную фиговину=)
|
у функций описанных в классах, всего три звена в цепочке видимости:
локальные данные объект вызвавший функцию и глобал вот пример: Код:
class test extends Object {Код:
a = new test (); // в трайс выдаст 100 |
спасибо, друзья, вы мне здорово помогли :)
|
чтобы всё заработало в FAME пришлось поправить класс Delegate: в 27 и 29 строчках заменить func на func2.
2Nirth: вызывается он, конечно, Delegate.create() :) и спасибо за замечательный туториал по FAME! |
писал не я, я просто перевел=)
|
| Часовой пояс GMT +4, время: 16:09. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.