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

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

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

Регистрация: Oct 2010
Сообщений: 7
По умолчанию Передвижение mc при ресайзе сцены

Привет всем!

У меня есть несложный код, в котором функция func1 выполняет следующее действие:
Код AS3:
var box:Box = new Box ();
box.x = stage.stageWidth  / 2;
box.y = stage.stageHeight / 2;
//я запоминаю положение объекта
boxX1 = box.x;
boxY1 = box.y;
Затем есть другая функция func2, которая передвигает этот mc:
Код AS3:
box.x = stage.stageWidth  / 4;
box.y = stage.stageHeight / 4;
//я запоминаю новое положение
boxX1 = box.x;
boxY1 = box.y;
При ресайзе сцены срабатывает onStageResize:
Код AS3:
//Она должна передвинуть mc
 
TweenLite.to ( box, 1, { x: boxX1, y: boxY1 } );
Чтобы из функции onStageResize получить доступ к boxX1 и boxY1, я так понял, нужно задать эти переменные глобально перед конструктором. Вот с этим и возникают непонятности... Как это сделать? Я пробовал писать перед конструктором
Код AS3:
var boxX1: Number;
var boxY1: Number;
Но при ресайзе ничего не происходит, я чувствую, что подвох как раз в том, что при изменении положения объекта на сцене, его новые координаты не передаются глобальным переменным...
Что мне делать? Очень надеюсь на вашу помощь...

Старый 19.11.2010, 21:37
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 2  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
Цитата:
box.x = stage.stageWidth / 4;
box.y = stage.stageHeight / 4;
//я запоминаю новое положение
boxX1 = box.x;
boxY1 = box.y;
//Она должна передвинуть mc
TweenLite.to ( box, 1, { x: boxX1, y: boxY1 } )
Странная логика какая-то - сначала передвинуть объект резко в (x, y), а зетем начать плавное движение в те же (x, y), почему не так?:
Код AS3:
var newX:Number = stage.stageWidth  / 4;
var newY:Number = stage.stageHeight / 4;
 
//Она должна передвинуть mc
TweenLite.to ( box, 1, { x: newX, y: newY } )


Последний раз редактировалось expl; 19.11.2010 в 21:39.
Старый 19.11.2010, 22:04
desprit вне форума Посмотреть профиль Отправить личное сообщение для desprit Найти все сообщения от desprit
  № 3  
Ответить с цитированием
desprit

Регистрация: Oct 2010
Сообщений: 7
Я описал ту часть, которая мне непонятна и упустил очень много всего. В оригинале у меня нет резкого перемещения объекта, там все точно также на твинах построено, просто в целях экономии вашего времени на прочтение моего кода, я оставил только самый важный момент - как мне сохранить новые координаты объекта, чтобы функция ресайза работала уже непосредственно с ними?
Вы ведь мне просто написали как сделать плавный твин из одной координаты в другую.

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

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

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


 


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


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