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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 31.01.2010, 17:38
Stanislavsky вне форума Посмотреть профиль Отправить личное сообщение для Stanislavsky Найти все сообщения от Stanislavsky
  № 11  
Ответить с цитированием
Stanislavsky
 
Аватар для Stanislavsky

Регистрация: Sep 2007
Адрес: 52° 31′ N, 13° 24′ O
Сообщений: 55
Этот код стоит в первом кадре мувика.
Не получается загрузить этот мувик в другой addChildAt.
Код AS3:
//Импорт TweenMax и plugin для blur filter
import com.greensock.TweenMax;
 
//Запомним длину контента и маски.
//Присвойте длину вашего контента здесь!
var CONTENT_WIDTH:Number = 1500;
var MASK_WIDTH:Number = 330;
 
//Мы хотим знать, какая была предыдущая x-координата для контента (для анимации)
var oldX:Number = myContent.x;
 
//Располагаем контент в левом верхнем углу маски
myContent.x = myMask.x;
myContent.y = myMask.y;
 
//Установим маску для нашего контента
myContent.mask = myMask;
 
//Создадим прямоугольник, который будет действовать как ограничитель для scrollMC.
//Это способ, при помощи которого scrollMC можно перетаскивать только вдоль линии.
var bounds:Rectangle = new Rectangle(scrollMC.x,scrollMC.y,700,0);
 
//Мы хотим знать, когда пользователь скроллирует
var scrolling:Boolean = false;
 
//Слушаем, когда пользователь нажимает мышь на scrollMC
scrollMC.addEventListener(MouseEvent.MOUSE_DOWN, startScroll);
 
//Слушаем когда пользователь вращает колесико мыши
stage.addEventListener(MouseEvent.MOUSE_WHEEL, mouseWheelHandler);
 
//Слушаем, когда пользователь отпускает кнопку мыши
stage.addEventListener(MouseEvent.MOUSE_UP, stopScroll);
 
//Эта функция вызывается, когда пользователь перетаскивает scrollMC
function startScroll(e:Event):void {
 
	//Установим scrolling равным true
	scrolling = true;
 
	//Начинаем перетаскивать scrollMC 
	scrollMC.startDrag(false,bounds);
}
 
//Эта функция вызывается, когда пользователь заканчивает перетаскивание scrollMC
function stopScroll(e:Event):void {
 
	//Установим scrolling равным false
	scrolling = false;
 
	//Остановим перетаскивание
	scrollMC.stopDrag();
}
//Добавим ENTER_FRAME чтобы анимировать скроллирование
addEventListener(Event.ENTER_FRAME, enterHandler);
 
//Эта функция выполняется в каждом фрейме
function enterHandler(e:Event):void {
 
	//Проверяем, происходит ли скроллирование
	if (scrolling == true) {
 
		//Вычисляем расстояние scrollMC от левого края
		var distance:Number = Math.round(scrollMC.x - bounds.x);
 
		//Вычисляем процентное содержание расстояния по отношению к длине линии.
		//Итак, когда scrollMC слева, percentage равно 0 ,
		// а когда справа - percentage равно 1.
		var percentage:Number = distance / MASK_WIDTH;
 
		//Сохраним старую x - координату
		oldX = myContent.x;
 
		//Вычисляем новую x -координату (targetX) для контента.
		//Мы вычитаем длину маски из длины контента.
		//Таким образом, контент должен двигаться влево, когда мы прокручиваем вправо.
		//Удалите вычитание, чтобы убедиться лично!
		var targetX:Number = -((CONTENT_WIDTH - MASK_WIDTH) * percentage) + myMask.x;
 
		//Мы хотим анимировать скроллирование только если старый х отличается от нового х.
		//В нашем мувике мы анимируем прокрутку, если разница больше чем 5 пикселов.
		if (Math.abs(oldX - targetX) > 5) {
 
			//Твин контента на новую позицию.
			//Вызываем функцию tweenFinished() когда твин завершится.
			TweenMax.to(myContent, 2, {x: targetX, blurFilter:{blurX:0, blurY:0}, onComplete: tweenFinished});
		}
	}
}
//Эта функция вызывается, когда твин завершается
function tweenFinished():void {
	//твин для возврата контента к нормальному состоянию (= удалим blur)
	TweenMax.to(myContent, 0.3, {blurFilter:{blurX:0, blurY:0}});
}
function mouseWheelHandler(event:MouseEvent):void {
	if ((event.delta < 0 && scrollMC.x > bounds.x) ||
		(event.delta > 0 && scrollMC.x < bounds.x + bounds.width))
	{
		scrolling = true;
		scrollMC.x = scrollMC.x + (event.delta * 9);
	}
}
В каком коде нужно менять: в этом или в загрузчике?
Выдает ошибку, Невозможно получить доступ к свойству или методу пустой ссылки на объект. Все с этим stage не могу разобраться.

Старый 31.01.2010, 20:31
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 12  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Выложи весь исходник, это будет проще чем вытягивать по капле суть проблемы.
Загрузчик внешний? Весь код только в кадрах? Этот клип лежит на сцене или добавляется динамически?

Добавлено через 8 минут
Цитата:
Все с этим stage не могу разобраться.
свойство stage у объекта появляется только, когда объект добавлен в display list.
Например, есть три объекта main (класс приложения), container, child.
container.addChild(child) -- child.stage == null
main.addChild(container) -- child.stage == stage

Старый 31.01.2010, 22:45
cleptoman вне форума Посмотреть профиль Отправить личное сообщение для cleptoman Найти все сообщения от cleptoman
  № 13  
Ответить с цитированием
cleptoman
 
Аватар для cleptoman

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
не пишите код в кадрах
подписывайте на событие добавления экземпляра на сцену..после этого можете работать с stage
__________________
http://cleptoman.free-lance.ru
achivements: дважды благословлен на воровство. осеяный благодатью

Старый 04.02.2010, 03:13
Stanislavsky вне форума Посмотреть профиль Отправить личное сообщение для Stanislavsky Найти все сообщения от Stanislavsky
  № 14  
Ответить с цитированием
Stanislavsky
 
Аватар для Stanislavsky

Регистрация: Sep 2007
Адрес: 52° 31′ N, 13° 24′ O
Сообщений: 55
Цитата:
Сообщение от alatar Посмотреть сообщение
Выложи весь исходник, это будет проще чем вытягивать по капле суть проблемы.
Загрузчик внешний? Весь код только в кадрах? Этот клип лежит на сцене или добавляется динамически?
Я уже темку создавал по поводу струтуры, и выкладывал свой код тут.
Надеюсь будет понятно.
Очень интересует Ваше мнение. В своей логике программирования пока сомневаюсь. У каждого подгружаемого клипа - есть свой класс. Может быть все клипы надо вставить в библиотеку основного?
Спасибо!

Старый 16.02.2010, 23:04
RonEXI вне форума Посмотреть профиль Отправить личное сообщение для RonEXI Найти все сообщения от RonEXI
  № 15  
Ответить с цитированием
RonEXI

Регистрация: Sep 2005
Сообщений: 85
разобрался
__________________
www.MegaLuckyPlay.com


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

Теги
scroll , колесо мыши , скроллинг
Опции темы
Опции просмотра

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

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


 


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


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