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

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 21.10.2014, 13:40
Маруська вне форума Посмотреть профиль Отправить личное сообщение для Маруська Найти все сообщения от Маруська
  № 1  
Ответить с цитированием
Маруська

Регистрация: Feb 2012
Сообщений: 205
The bomb! плавная анимация скриптом

написала скрипт и он хорошо работает. вот только не хватает анимаций. Пыталась вставить скрипт on EnterFrame для плавного появления и исчезновения slide'ов, но отчего-то _alpha для элементов массива v[kv] на выводе даёт undefined,так же как и _х и _y. Помогите написать конкретный скрипт, пожалуйста. в коде помечено комментариями, что я собственно хочу
Код AS1/AS2:
n = 8;
kv = 1;
game = this;
setTimeout(go,10);
rest=1;
import mx.transitions.Tween;
 
function go()
{
	//stop();
	var v:Array = new Array(n);
	var slideretrycount:Number = 1;
	for (i = 1; i <= n; i++)
	{
		v[i] = "slide" + i;
	}
 
	for (i = 1; i <= n; i++)
	{		
		game['bt' + i].onRollOver = function()
		{
			if (kv != substring(this._name, 3, -1))
			{	game['bt'+kv].gotoAndStop(1);
				this.gotoAndStop(2);
				rest=substring(this._name, 3, -1)-kv;
				if (rest<=0){/*v[kv] плавная прозрачность с движением вверх*/}
				if (rest>=0){/*v[kv] плавная прозрачность с движением вниз*/}
				deleteslide()
				kv = substring(this._name, 3, -1);
				addslide();
				setY();
			}
		};
		game['bt' + i].onRollOut = function()
		{
			if (kv != substring(this._name, 3, -1))
			{
				this.gotoAndStop(1);
			}
		};
	}
	function addslide()
	{
		attachMovie(v[kv],v[kv],kv);
		setProperty(v[kv], _x, 30);
		setProperty(v[kv], _y, 40);
		setProperty(v[kv], _alpha, 100);
		if (rest<=0){/*v[kv] плавное появление с движением вверх*/}
		if (rest>=0){/*v[kv] плавное появление с движением вниз*/}
	}
	function deleteslide()
	{ 	m = v[kv];
	   removeMovieClip(m);
	}
 
	function setY() 
	{pos=1;	
	for (k = kv; k <= n; k++){pos++;game['bt'+k]._y=120+pos*3;}
	 pos=1;
		for (k = kv; k >= 1; k--){pos++;game['bt'+k]._y=120+pos*3}
	}
 
	addslide();
	setY();
}

Старый 21.10.2014, 13:56
Sergey_A вне форума Посмотреть профиль Отправить личное сообщение для Sergey_A Найти все сообщения от Sergey_A
  № 2  
Ответить с цитированием
Sergey_A

Регистрация: Jun 2010
Сообщений: 128
Для начала просто объявите этот массив не в функции, а в корне. Там, где у вас
Код AS1/AS2:
n = 8;
kv = 1;
var v:Array = new Array(n);
Тогда и undefined в другой функции не будет. Ну или передавайте его в качестве параметра.

Старый 21.10.2014, 14:06
Маруська вне форума Посмотреть профиль Отправить личное сообщение для Маруська Найти все сообщения от Маруська
  № 3  
Ответить с цитированием
Маруська

Регистрация: Feb 2012
Сообщений: 205
Цитата:
Сообщение от Sergey_A Посмотреть сообщение
Для начала просто объявите этот массив не в функции, а в корне.
объявила - всё равно свойство _alpha = undefined

Старый 21.10.2014, 14:24
Sergey_A вне форума Посмотреть профиль Отправить личное сообщение для Sergey_A Найти все сообщения от Sergey_A
  № 4  
Ответить с цитированием
Sergey_A

Регистрация: Jun 2010
Сообщений: 128
Ну, тогда fla файл выкладывайте. Желательно, не в самой новой версии Adobe Flash сделанный, чтобы открыть можно было. А то так и не разберешся, где у вас что и что на что реагировать должно.

Старый 21.10.2014, 15:00
Маруська вне форума Посмотреть профиль Отправить личное сообщение для Маруська Найти все сообщения от Маруська
  № 5  
Ответить с цитированием
Маруська

Регистрация: Feb 2012
Сообщений: 205
cs 5.0 подойдёт?
block1.rar

Старый 21.10.2014, 15:55
Sergey_A вне форума Посмотреть профиль Отправить личное сообщение для Sergey_A Найти все сообщения от Sergey_A
  № 6  
Ответить с цитированием
Sergey_A

Регистрация: Jun 2010
Сообщений: 128
Что вы хотите получить в итоге, я все равно не понял. Хотя это уже красиво, по-моему. Но обращаться к свойствам у вас нужно не
Код AS1/AS2:
v[kv]._x
, а
Код AS1/AS2:
game[v[kv]]._x
, ятобы не было undefined.

Старый 21.10.2014, 16:04
Маруська вне форума Посмотреть профиль Отправить личное сообщение для Маруська Найти все сообщения от Маруська
  № 7  
Ответить с цитированием
Маруська

Регистрация: Feb 2012
Сообщений: 205
чорт, спасибо.. вот жэ я тупая =(((

Добавлено через 9 часов 24 минуты
Так, снова добралась до скрипта и оказалось, что ни в каком символе game у меня слайды не лежат. Трейсить я их могу банально кодом
Код AS1/AS2:
trace (v[kv] )
Добавлено через 9 часов 35 минут
а вот
Код AS1/AS2:
trace( v[kv]._alpha)
выдаёт undefined

Добавлено через 9 часов 49 минут
Код AS1/AS2:
function deleteslide(mc:MovieClip)
	{ 	
		mc._alpha = 100;
		trace(mc._alpha)
		this.onEnterFrame = function()
		{
		mc._alpha -= 2;
		trace("new alpha: " + mc._alpha);
		if (mc._alpha < 0)
			{
			delete this.onEnterFrame;
			trace("end deleteSlide");
			}
		}
	   removeMovieClip(mc);
	}
вот такая функция абсолютно точно должна хорошо работать, если бы не undefined на trace(mc._alpha)

Добавлено через 9 часов 53 минуты
может быть, проблема при загрузке клипа?
Код AS1/AS2:
function addslide()
	{
		attachMovie(v[kv],v[kv],kv);
		setProperty(v[kv], _x, 30);
		setProperty(v[kv], _y, 40);
		setProperty(v[kv], _alpha, 100);
		trace(v[kv]._alpha)//undefined 
	}


Последний раз редактировалось Маруська; 22.10.2014 в 01:54.
Старый 22.10.2014, 02:50
Маруська вне форума Посмотреть профиль Отправить личное сообщение для Маруська Найти все сообщения от Маруська
  № 8  
Ответить с цитированием
Маруська

Регистрация: Feb 2012
Сообщений: 205
окей, почти разобралась с проблемой. возникла другая.
Смогла заставить работать коды RemoveSlide и addSlide только один за одним. Было бы неплохо запускать их одновременно. И как то избавиться от зависаний, которые происходят при быстром скролле по всем кнопкам.
Помогите, кто чем может. Исходник вот тут block1.zip

Старый 23.10.2014, 11:26
razve вне форума Посмотреть профиль Отправить личное сообщение для razve Найти все сообщения от razve
  № 9  
Ответить с цитированием
razve
 
Аватар для razve

Регистрация: Jun 2014
Сообщений: 52
Цитата:
Сообщение от Маруська Посмотреть сообщение
а вот
Код AS1/AS2:
trace( v[kv]._alpha)
выдаёт undefined
[/as]
Посмотри.
Код AS1/AS2:
arr = new Array("ball");
trace(arr[0]._alpha);
//undefined
//
arr = new Array("ball");
trace(_root[arr[0]]._alpha);
//100
//
arr = new Array(ball);
arr[0]._alpha = 50;
trace(arr[0]._alpha);
//50
//
arr = new Array("ball");
mc = _root[arr[0]];
mc._alpha = 50;
trace(mc._alpha);
//50

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

блогер
Регистрация: Apr 2008
Адрес: SPb
Сообщений: 3,718
Записей в блоге: 5
Отправить сообщение для dark256 с помощью ICQ Отправить сообщение для dark256 с помощью Skype™
1. В массиве просто текстовая строка. У ней нет прозрачности.
2. В массиве тоже самое, но использутся уже как литерал объекта. Имя. _root[arr[0]] - ссылка на объект.
Можно записать как _root.ball или _root["ball"]
3. В массиве - имя объекта. Норм.
4. см. п.2.
__________________
FLASHER.MAP SOUNDSTAGE / CS3 / AS2

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

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

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


 


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


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