![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
есть следующий класс:
class game.MusicFile extends game.MusicObject {
private var mp3file:Sound
public function MusicFile () {
}
/*
* загружаем файл (не закончено)
*/
public function load(mp3fileLocation:String):Void {
TRACE(Flashout.INFO + "mp3 started loading");
var z = scopeRef.createEmptyMovieClip("mp3fileContainer", scopeRef.getNextHighestDepth());
mp3file = new Sound(scopeRef.mp3fileContainer);
TRACE(Flashout.DEBUG + "setting onLoad");
mp3file.onLoad = this.onLoad;
TRACE(Flashout.DEBUG + "onLoad set");
mp3file.loadSound("music.mp3", false);
}
public function startPlay():Void {
TRACE(Flashout.DEBUG + "this is mp3file="+mp3file);
mp3file.start();
TRACE(Flashout.DEBUG + "mp3 playing");
}
private function onLoad(success:Boolean):Void {
var suc = success ? "successfully" : "not successfully";
TRACE(Flashout.DEBUG + "onLoad called. loaded "+suc);
TRACE(Flashout.DEBUG + scopeRef);
if (success) {
TRACE(Flashout.DEBUG + this);
TRACE(Flashout.INFO + "mp3file=" + mp3file);
this.startPlay();
} else {
TRACE(Flashout.ERROR + "mp3 not loaded");
}
}
}
[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 не существует? ведь методом выше оно было, а методом ниже его уже нет. что я делаю не так? заранее спасибо за помощь. |
|
|||||
|
4AM Games
|
потому что ты теперь находишься в другой области видимости, используй класс mx.utils.Delegate
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^ |
|
|||||
|
а какой области видимости я нахожусь? и почему в другой, а не в своём объекте?
спасибо за помощь ![]()
__________________
вставьте подпись здесь |
|
|||||
|
Цитата:
то есть использование Delegate - это обычный метод, который используют в таких случаях?
__________________
вставьте подпись здесь |
|
|||||
|
4AM Games
|
Да это стандарт, в старших языках(Java, C#) есть даже специальные поля в классе, делегаторы,во флэше пока такого нету зато есть класс кое как эмулирующий данную фиговину=)
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^ |
|
|||||
|
Flash Aксакал
Регистрация: Jun 2005
Сообщений: 636
|
у функций описанных в классах, всего три звена в цепочке видимости:
локальные данные объект вызвавший функцию и глобал вот пример: class test extends Object {
var a;
var type = 5;
function test () {
var a = {};
a.type = 100;
a.test = method;
a.test ();
}
function method () {
trace ('>> ' + type);
}
}
|
|
|||||
|
спасибо, друзья, вы мне здорово помогли
![]()
__________________
вставьте подпись здесь |
|
|||||
|
чтобы всё заработало в FAME пришлось поправить класс Delegate: в 27 и 29 строчках заменить func на func2.
2Nirth: вызывается он, конечно, Delegate.create() и спасибо за замечательный туториал по FAME!
__________________
вставьте подпись здесь |
![]() |
![]() |
Часовой пояс GMT +4, время: 13:56. |
|
|
« Предыдущая тема | Следующая тема » |
|
|