Форум программистов, компьютерный форум, киберфорум
Наши страницы
ActionScript
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
Yulia_V
1 / 1 / 0
Регистрация: 15.09.2012
Сообщений: 28
1

Текст, меняющийся в зависимости от передвижения объекта

15.09.2012, 19:17. Просмотров 1200. Ответов 17
Метки нет (Все метки)

Здравствуйте, я начала изучать Action Script совсем недавно. Никак не могу справиться с одной проблемой:
Я хочу сделать так, чтобы по верхней части экрана передвигалась полоса, которая выходит на 2/3 за его пределы справа и слева. Собственно это у меня получилось. Но проблема заключается в том, что я хочу ещё чтоб в зависимости от её перетаскивания под ней менялся текст. Я решила построить это на столкновении объектов, сделав полосу qw_mc контейнером, в котором к его середине прикреплён объект qw1_mc. Так же я смогла сделать чтобы в выводе отображалось true и false столкновения qw1_mc с определёнными точками. Но как сделать чтоб в зависимости от этого менялся ещё и текст в нижней части экрана? Пожалуйста, помогите если у вас есть возможность!

Вот код:

ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import flash.geom.Rectangle;
import flash.events.MouseEvent;
import flash.sensors.Accelerometer;
 
qw_mc.addEventListener (MouseEvent.MOUSE_DOWN,onMD);
function onMD(e:MouseEvent):void
{
   qw_mc.startDrag (false, new Rectangle (-275,100,1100,0));
stage.addEventListener(MouseEvent.MOUSE_UP,onMU); 
}
function onMU (e:MouseEvent):void
{
   qw_mc.stopDrag();
}
stage. addEventListener (MouseEvent.MOUSE_MOVE,onMoseMove);
function onMoseMove (e:MouseEvent):void
{
 
   trace ("s tochkoi 3" + qw_mc.qw1_mc.hitTestPoint(-275,100,true));
   trace ("s tochkoi 2" + qw_mc.qw1_mc.hitTestPoint(275,100,true));
   trace ("s tochkoi 1" + qw_mc.qw1_mc.hitTestPoint(825,100,true));
 
 
}
0
Миниатюры
Текст, меняющийся в зависимости от передвижения объекта  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.09.2012, 19:17
Ответы с готовыми решениями:

Меняющийся текст
Скажите как сделать что бы в определенный промежток времени к примеру 10 сек. менялся заданный...

меняющийся текст на странице
здравствуйте уважаемые форумчане. пожалуйста помогите мне с одной задачей. мне на странице в одном...

Клон объекта лишенный передвижения
Здравствуйте, как сделать что бы за движущимся объектом оставался его клон или просто одна...

Меняющийся текст про прокрутке ползунка
привет) подскажите пожалуйста, необходимо реализовать такой слайдер текст внизу меняется при...

Реализация передвижения объекта по игровому полю
Всем добрый вечер Сделал игровое поле из speedbuttons, как сделать так чтобы компьютер перемещал...

17
TanaTiX
Модератор
2798 / 1655 / 168
Регистрация: 19.02.2011
Сообщений: 6,018
Завершенные тесты: 2
15.09.2012, 20:16 2
Цитата Сообщение от Yulia_V Посмотреть сообщение
Но как сделать чтоб в зависимости от этого менялся ещё и текст в нижней части экрана?
В каком случае что должно отображаться? Вы создали текстовое поле? Добавляли туда текст?
0
Yulia_V
1 / 1 / 0
Регистрация: 15.09.2012
Сообщений: 28
15.09.2012, 20:43  [ТС] 3
В зависимости от того какая треть полосы преобладает в кадре должен появляться один из трёх варриантов текста, грубо говоря "текст 1", "текст 2" и "текст 3". Текстовое поле задала но ничего не получилось (я пыталась впихнуть в код условные операторы).
0
TanaTiX
Модератор
2798 / 1655 / 168
Регистрация: 19.02.2011
Сообщений: 6,018
Завершенные тесты: 2
15.09.2012, 20:57 4
Я бы по координатам вычислял треть (к примеру, 1я, 2я, 3я) и далее что-то типа
ActionScript 3
1
2
3
4
5
6
7
if(position == 1){
   txt.text="1я треть";
}else if(position == 2){
   txt.text="2я треть";
}else{
   txt.text="3я треть";
}
0
Yulia_V
1 / 1 / 0
Регистрация: 15.09.2012
Сообщений: 28
15.09.2012, 22:19  [ТС] 5
Спасибо большое, а можно чуть подробнее, как координаты обозначить и привязать к объекту?
0
TanaTiX
Модератор
2798 / 1655 / 168
Регистрация: 19.02.2011
Сообщений: 6,018
Завершенные тесты: 2
15.09.2012, 22:25 6
Во-первых, нужно определиться в каком диапазоне будет двигаться объект. Допустим А - исходная позиция, Б - конечная, В - текущая. Тогда текущий процент от исходной до конечной будет составлять
(В-А)/(Б-А)
А далее остается только определить в каком диапазоне находится объект.
1
Yulia_V
1 / 1 / 0
Регистрация: 15.09.2012
Сообщений: 28
15.09.2012, 23:12  [ТС] 7
Не уверена, что правильно поняла. Добавила в конце своего кода:

ActionScript 3
1
2
3
4
5
6
7
8
9
var position:Number = qw_mc.x
 
if(position == -275){
   text_txt.text="3я треть";
}else if(position == 275){
   text_txt.text="2я треть";
}else{
   text_txt.text="1я треть";
}
Когда загружаю клип, он выдаёт мне текст "1я треть", но при передвижении полосы ничего не меняется. Может надо какой-то слушатель событий?

Полоса нарисована на картинке прикреплённой к моему сообщению. Фиолетовой рамкой обозначена сцена. Полоса перетаскивается по всей своей ширине налево и направо.

 Комментарий модератора 
Используйте теги форматирования кода. Для ActionScript это кнопка "AS"


Добавлено через 2 минуты
Слушатель прикрепила, меняться начало. Но есть ещё один момент.
0
TanaTiX
Модератор
2798 / 1655 / 168
Регистрация: 19.02.2011
Сообщений: 6,018
Завершенные тесты: 2
15.09.2012, 23:14 8
Оператор == сработает только в случае наличия четкого равенства, т.е., к примеру, если position будет 275 - условие сработает, а если 275.1 - нет. При таком подходе используйте >, <, >=, <=.
1
Yulia_V
1 / 1 / 0
Регистрация: 15.09.2012
Сообщений: 28
15.09.2012, 23:28  [ТС] 9
Да, именно так, срабатывает в одной точке. Сейчас попробую что-нибудь сделать с этим. Спасибо, вы мне уже очень помогли. Я напишу получится у меня или нет.

Добавлено через 10 минут
Всё работает почти как я хочу, только в последней строке я написала так же else if вместо простого else. Одна проблема: когда я слишком быстро перетаскиваю полосу через вторую сцену текст как бы не успевает поменяться, остаётся "1я треть" пока не поменяется на "3я треть". Можно как-то с этим бороться?
0
TanaTiX
Модератор
2798 / 1655 / 168
Регистрация: 19.02.2011
Сообщений: 6,018
Завершенные тесты: 2
15.09.2012, 23:30 10
Возможно
ActionScript 3
1
e.updateAfterEvent();
в обработчике заинтересованного мышиного события.
0
Yulia_V
1 / 1 / 0
Регистрация: 15.09.2012
Сообщений: 28
15.09.2012, 23:37  [ТС] 11
К сожалению не работает(
0
TanaTiX
Модератор
2798 / 1655 / 168
Регистрация: 19.02.2011
Сообщений: 6,018
Завершенные тесты: 2
16.09.2012, 00:09 12
Цитата Сообщение от Yulia_V Посмотреть сообщение
К сожалению не работает(
К сожалению самого факта слишком мало для решения проблемы(
0
Yulia_V
1 / 1 / 0
Регистрация: 15.09.2012
Сообщений: 28
16.09.2012, 00:15  [ТС] 13
Я решила её таким образом:
ActionScript 3
1
2
3
4
5
6
if(position == -275){
   text_txt.text="3я треть"
}else if(position <= 275){
   text_txt.text="2я треть";
}else if(position <= 825){
   text_txt.text="1я треть";
Теперь всё идеально)
0
TanaTiX
Модератор
2798 / 1655 / 168
Регистрация: 19.02.2011
Сообщений: 6,018
Завершенные тесты: 2
16.09.2012, 00:27 14
Цитата Сообщение от Yulia_V Посмотреть сообщение
Теперь всё идеально)
До идеала там ох как далеко, даже если на 1й взгляд все правильно работает.
0
Yulia_V
1 / 1 / 0
Регистрация: 15.09.2012
Сообщений: 28
16.09.2012, 00:50  [ТС] 15
Ну я уже вижу момент который надо доработать.
Вообще это только основа, с этой прогой мне ещё много придётся сделать.
Если интересно, вот примерный план:
1) Надо чтоб полоса после отпускания мыши не оставалась наместе, а приобретала некий тормозной путь.
2) Создать кнопку, при нажатии на которую полоса сворачивается наверх, а текст развёртывается на всю высоту страницы.
3) Каждый текст вызываемый полосой это начало главы, надо сделать кнопки, при нажатии на которые можно увидеть продолжение главы, т.е. перелистывать страницы.
4) На полосе будут прикреплены объекты (кнопки), при нажатии на которые так же вылезает дополнительный текст внизу, в таком же поле, но появляется закладка чтоб можно было вернуться на главный текст. (Это похоже сложновато).
5) И наконец до загрузки всего вышеперечисленного будет загружаться картинка-оглавление, при нажатие на объекты которой (символизирующие главы) будет выскакивать уже известное содержание с полосой прокрученной на нужное место и соответствующим текстом.
Вот так...
Вопрос зачем мне всё это нужно? Я учусь на дизайнера и сейчас делаю дипломную работу - интерактивную книгу (с перспективой заточки под планшетник). Никто нас языкам программирования не учил, но я решила выпендриться. С языком я немного познакомилась летом (правда со 2-й версией), а с этого четверга начала залипать над ним с утра до вечера.
Если у вас есть какие-то советы, то я с удовольствием их почитаю!
0
TanaTiX
Модератор
2798 / 1655 / 168
Регистрация: 19.02.2011
Сообщений: 6,018
Завершенные тесты: 2
16.09.2012, 01:02 16
1) Достигается введением таких параметров, как ускорение, скорость, торможение. Ну или на худой конец можно попробовать обычный easing.
3) Видел в сети листалки, в т.ч. и в свободном доступе. Но задача это не тривиальная, даже если будете использовать чужие наработки.
4) Чувствую, что тяжело вам будет. Особенно без кода в классах и без хотя бы основ ООП.
5) Картинка не содержит в себе никаких объектов, она картинка -объект сама по себе.

Цитата Сообщение от Yulia_V Посмотреть сообщение
Если у вас есть какие-то советы
Советы... Хм... Учитывая "выпендиться", я бы в 1ю очередь оценил время, которое может на все это уйти. Т.е. самостоятельно вы можете просто не успеть. Я в свое время тоже начинал с проекта, тоже с ас2, на более менее внятное им владение у меня тогда ушло около полугода. А ас2 и ас3 хоть и похожи, но отличия между ними все же значительные.
Если не передумали - сразу учитесь писать в классах, почитайте про ООП и SOLID и MVC. Относительно литературы - официальная документация и для понимания принципов ООП Колин Мук (хотя у него и встречаются далеко не лучшие решения, но вам от него не решения нужны, а понимание принципов)
1
Yulia_V
1 / 1 / 0
Регистрация: 15.09.2012
Сообщений: 28
16.09.2012, 01:31  [ТС] 17
Ну в смысле картинка эта будет контейнером, содержащим разные символы.

Время у меня вроде имеется, желания хоть отбавляй, ещё куча видео уроков в наличии, в том числе и по ОПП. Мука скачала и ещё книгу "Рецепты ActionScript". Прорвёмся. Ведь будет здорово если получится. Я скорее всего ещё буду задавать вопросы на форуме, никуда от этого не денусь.
0
TanaTiX
Модератор
2798 / 1655 / 168
Регистрация: 19.02.2011
Сообщений: 6,018
Завершенные тесты: 2
16.09.2012, 07:42 18
Цитата Сообщение от Yulia_V Посмотреть сообщение
Время у меня вроде имеется, желания хоть отбавляй, ещё куча видео уроков в наличии, в том числе и по ОПП.
Я про это не сказал, но желание - это главное, так что удачи.

Цитата Сообщение от Yulia_V Посмотреть сообщение
Ну в смысле картинка эта будет контейнером
Картинка не может быть контейнером(Bitmap>DisplayObject), но может находиться в контейнере (DisplayObjectContainer>Sprite>MovieClip). В скобках указана иерархия классов. При этом общая цепочка наследования для MovieClip выглядит так: MovieClip>Sprite>DisplayObjectContainer >InteractiveObject>DisplayObject>EventDispatcher>Object
0
16.09.2012, 07:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.09.2012, 07:42

Меняющийся текст в TextBlock, получение данных из xml
&lt;?xml version=&quot;1.0&quot; standalone=&quot;yes&quot;?&gt; &lt;NewDataSet&gt; &lt;Translete&gt; &lt;id&gt;0&lt;/id&gt; ...

Изменить код передвижения объекта добавив прямоугольник
Имеется программа, нужно изменить чтобы имеющийся круг был вписан в прямоугольник (или квадрат, без...

Нарисовать график передвижения объекта с помощью таймера
Здравствуйте. Программа запуска объекта (присутствует масса, скорость, сопротивление ветра, угол,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru