Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Flash > ActionScript

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 23.06.2004, 21:31
Mr.Brownstone вне форума Посмотреть профиль Отправить личное сообщение для Mr.Brownstone Найти все сообщения от Mr.Brownstone
  № 1  
Mr.Brownstone

Регистрация: Jan 2002
Адрес: Right Next Door To Hell
Сообщений: 34
Отправить сообщение для Mr.Brownstone с помощью ICQ
По умолчанию покадровый цикл

есть такая функция:

flashDown = function (aim) {
couleur = new Color(aim);
m = 255;
x = 50;
aim._parent.onEnterFrame = function() {
m -= x;
x = Math.round(x*.8);
m<0 ? delete aim.onEnterFrame : m;
couleur.setBrightOffset(m);
};
};

когда я пишу

flashDown(mc_1);
flashDown(mc_2);

то изменения происходят только с mc_2, видимо вся завязка с
onEnterFrame. Как мне вызвать покадровый цикл, чтобы работал во всех
клипах?
__________________
Более мощный компьютер глючит быстрее и точнее.

Старый 23.06.2004, 22:11
Елё вне форума Посмотреть профиль Отправить личное сообщение для Елё Посетить домашнюю страницу Елё Найти все сообщения от Елё
  № 2  
Елё
 
Аватар для Елё

Регистрация: Jun 2002
Адрес: Москва
Сообщений: 287
Отправить сообщение для Елё с помощью Skype™
а ты не пробовал _parent убрать?

Старый 23.06.2004, 22:28
Елё вне форума Посмотреть профиль Отправить личное сообщение для Елё Посетить домашнюю страницу Елё Найти все сообщения от Елё
  № 3  
Елё
 
Аватар для Елё

Регистрация: Jun 2002
Адрес: Москва
Сообщений: 287
Отправить сообщение для Елё с помощью Skype™
Вот, как то так должно быть:

Код:
flashDown = function () 
{
	this.couleur = new Color(this);
	this.m = 255;
	this.x = 50;
	this.onEnterFrame = function() 
	{
		this.m -= this.x;
		this.x = Math.round(this.x*.8);
		if(this.m<0) delete onEnterFrame;
		else this.couleur.setBrightOffset(this.m);
	};
};
flashDown.call(mc_1);
flashDown.call(mc_2);


Последний раз редактировалось Елё; 23.06.2004 в 22:30.
Старый 23.06.2004, 23:56
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 4  
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
по разному может быть:
Код:
MovieClip.prototype.flashDown = function () {
	var couleur = new Color(this),m = 255,x = 50;
	this.onEnterFrame = function() {
		m -= x;
		x = Math.round(x*0.8);
		if(m<0) delete this.onEnterFrame;
		else couleur.setBrightOffset(m);
	};
};
mc_1.flashDown();
mc_2.flashDown();

Старый 24.06.2004, 16:29
Елё вне форума Посмотреть профиль Отправить личное сообщение для Елё Посетить домашнюю страницу Елё Найти все сообщения от Елё
  № 5  
Елё
 
Аватар для Елё

Регистрация: Jun 2002
Адрес: Москва
Сообщений: 287
Отправить сообщение для Елё с помощью Skype™
Silin, а ты так пробовал?

Мне кажется не должно работать по скольку
1. Ты используешь вар которые не действительны при вызове onEnterFrame
2. У меня вечно проблемы с this. Если его явно не указывать то флэш переменных не видит почему-то :-(

Старый 24.06.2004, 16:58
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 6  
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
в 6-ке работает

Старый 26.06.2004, 10:46
Dindin вне форума Посмотреть профиль Отправить личное сообщение для Dindin Посетить домашнюю страницу Dindin Найти все сообщения от Dindin
  № 7  
Dindin
 
Аватар для Dindin

Регистрация: Feb 2004
Адрес: на колокольне Любит: плеваться
Сообщений: 1,769
Отправить сообщение для Dindin с помощью ICQ
класс (в отдельном файле FlashDown.as)
Код:
class FlashDown extends MovieClip {
	function FlashDown(movieClip:MovieClip, m:Number, x:Number) {
		var couleur = new Color(movieClip);
		movieClip.onEnterFrame = function() {
			m -=x;
			x = Math.round(x*0.8);
			if (m<0) {
				delete movieClip.onEnterFrame;
			} else {
				couleur.setBrightOffset(m);
			}
		};
	}
}
Инициализация класса:
Код:
newFlashDownObject = new FlashDown(mc,255,50);
__________________
судью - на мыло, из игроков - вить веревки.

Старый 26.06.2004, 18:07
Елё вне форума Посмотреть профиль Отправить личное сообщение для Елё Посетить домашнюю страницу Елё Найти все сообщения от Елё
  № 8  
Елё
 
Аватар для Елё

Регистрация: Jun 2002
Адрес: Москва
Сообщений: 287
Отправить сообщение для Елё с помощью Skype™
И че все MovieClip экстендят? ;-)

Можнож просто class определить, который ничего не "extends"

Мне кажется не нужен тут MovieClip

Да, и если это работает (я сам не проверял, но наверное же должно работать?) откуда в onEnterFrame берется m и x? Это же вроде параметры другой функции и они не действительны когда вызывается onEnterFrame... Или у меня какое то глобальное недопонимание?


Последний раз редактировалось Елё; 26.06.2004 в 18:10.
Старый 26.06.2004, 18:47
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 9  
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
глянь

Старый 26.06.2004, 21:17
Елё вне форума Посмотреть профиль Отправить личное сообщение для Елё Посетить домашнюю страницу Елё Найти все сообщения от Елё
  № 10  
Елё
 
Аватар для Елё

Регистрация: Jun 2002
Адрес: Москва
Сообщений: 287
Отправить сообщение для Елё с помощью Skype™
2 silin: Спасибо, примерно понятно

Создать новую тему   Часовой пояс GMT +4, время: 18:58.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 18:58.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.