![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Регистрация: Jul 2002
Адрес: Riga
Сообщений: 93
|
Я создаю несколько однотипных мувиков, в которых прописана какая-нибудь функция (например, изменяющая текст в текстфилде внутри этого мувика). Есть глобальная переменная, допустим, _root.v. Нужно, чтобы при изменении значения этой переменной на какое-нибудь другое, во всех мувиках сробатывали те прописанные функции.
Или можно создать класс, которому присвоить эти мувики, и вызывать где-нибудь метод этого класса (например, с новым значением _root.v в качестве параметра), который вызовет прописанную внутри него фунцию для каждого экземпляра (моих несчастных мувиков)? Как такое сотворить? Практическое применение может быть следующим: — сайт выполнен в какой-то цветовой гамме, т. е. элементы сайта одного и того же цвета (кнопки, текст, курсор и т. д.), и ондим нажатием мыши поменять цветю гамму сайта, т. е. одновременно цвета всех нужных элементов; — если сайт на нескольких языках, поменять текст во всех нужных мувиках на соответствующий язык.
__________________
Дружелюбное существо |
|
|||||
|
Ветеран форума
|
Цитата:
![]()
__________________
BestMasterиZация |
|
|||||
|
Регистрация: Jul 2002
Адрес: Riga
Сообщений: 93
|
Простите-простите, в рамках моего, скажем так, проекта, такая переменная — глобальная. Ну пусть _global.v
__________________
Дружелюбное существо |
|
|||||
|
4AM Games
|
Начал писать когда то, чуть дописал.
import mx.events.EventDispatcher;
class ru.flasher.helping.managers.MovieClipChanger {
//event stuff
private static var initDispatcher = EventDispatcher.initialize(MovieClipChanger.prototype);
public var addEventListener:Function;
public var removeEventListener:Function;
private var dispatchEvent:Function;
//private properties
private var __movies_array:Array;
private var __method:Function = null;
//Constructor
public function MovieClipChanger () {
__movies_array = new Array ();
}
//public methods
public function addMovie(mc:MovieClip):Number {
__movies_array.push(mc);
dispatchEvent({type:"add",mc:mc});
return __movies_array.length;
}
public function removeMovie(mc):Object {
var result:Object = null;
if(typeof(mc) == "number") {
result = __movies_array[mc];
__movies_array.splice(mc,1);
}else if(typeof(mc) == "movieclip") {
for(var i:Number=0;i<__movies_array.length;i++) {
if(__movies_array[i] == mc) {
result = __movies_array[i];
__movies_array.splice(i,1);
break;
}
}
}
dispatchEvent({type:"remove",mc:result});
return result;
}
public function getMovie(index:Number):MovieClip {
if(index<=__movies_array.length) {
return __movies_array[index];
}else{
return null;
}
}
public function registerMethod(method:Function):Void {
__method = method;
dispatchEvent({type:"register" , method:__method});
}
public function execute(args:Array):Void {
dispatchEvent({type:"execute",method:__method};
for(var i:Number = 0;i<__movies_array.length;i++) {
__method.apply(__movies_array[i],args);
}
}
//read only
public function get length ():Number {
return __movies_array.length;
}
public function get movies ():Array {
return __movies_array.slice()
}
}
и в первом кадре пишем import ru.flasher.helping.managers.MovieClipChanger
var manager:MovieClipChanger = new MovieClipChanger();
manager.addMovie(b1_mc);
manager.addMovie(b2_mc);
manager.addMovie(b3_mc);
manager.removeMovie(b2_mc);
function setText(name:String):Void {
this._txt.text = this._name;
}
manager.registerMethod(setText);
manager.execute();
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^ Последний раз редактировалось Nirth; 16.12.2005 в 19:14. |
|
|||||
|
Регистрация: Jul 2002
Адрес: Riga
Сообщений: 93
|
Nirth, скажи, а зачем ты в этом классе использовал EventDispatcher и его метод dispatchEvent? По сути они бесполезны, по крайней мере после того, как я их убрал, класс сохранил свою работоспособность.
Просто я хочу сделать так, чтобы в одном экземпляре MovieClipChanger можно было регистрировать несколько методов.
__________________
Дружелюбное существо |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Цитата:
Хотя, похоже на аналог mx.data.binding.Binding… |
|
|||||
|
Регистрация: Jul 2002
Адрес: Riga
Сообщений: 93
|
Спасибо огромное!
__________________
Дружелюбное существо |
![]() |
![]() |
Часовой пояс GMT +4, время: 06:19. |
|
|
« Предыдущая тема | Следующая тема » |
|
|