Просмотр полной версии : Передача переменной на сл. кадр(help)
Здравствуйте =) извиняюсь если уже была подобная тема.
у меня возникла проблема помогите решить.
имеется два кадра.
На кадре первом имеется Movie Clip(предположим просто квадрат :D)
В это квадрате расположена кнопка Button, у этой кнопки имеется код
_root.gotoAndStop(2);
_root.txt7.text = "БлаБлаБла";
на втором кадре тектовое поле с именем txt7
вот при нажатии на кнопку на 1-ом кадре, на 2-ой кадр переходит, а текст в поле txt7 не вставляется, кто знает как это исправить?
где я туплю)))
В первом кадре нет поля txt7. Значит при определении функции-обработчика для кнопки это поле остается неопределенным.
Т.е. какому именно полю присваивать свойство text, равное вашему "БлаБла", функция так "не уззнает".
и как быть в таком случае
Включаем логику. Есть пара вариантов.
1) Ваше текстовое поле должно присутствовать уже в том же кадре, где определяется ваша функция. Если оно там будет мешать, то используйте свойство TextField._visible, делая его невидимым в первом кадре, а во втором - видимым.
2) Определяйте функцию там, где текстовое поле уже есть (во втором кадре).
AzagThoth
09.04.2010, 21:47
Вариант три: свяжите с текстовым полем переменную Свойства->Параметры->Переменная и задавайте значение для этой переменной. Тогда всё может остаться во втором кадре а код будет на первом.
не подскажешь как именно функцией сделать, а то я смутно представляю как это делать
Вариант три: свяжите с текстовым полем переменную Свойства->Параметры->Переменная и задавайте значение для этой переменной. Тогда всё может остаться во втором кадре а код будет на первом.
Не учите плохому. Использовать связанную с текстовым полем переменную очень сильно не стоит.
Автор должен разобраться в правильном методе.
AzagThoth
09.04.2010, 22:08
А где можно почитать почему стоит избегать использования связанных переменных? Просто по моему это определённое достоинство и почему бы его не использовать!?
А где можно почитать почему стоит избегать использования связанных переменных? Просто по моему это определённое достоинство и почему бы его не использовать!?
Насчет почитать - не знаю. Возможно, где-то в обсуждениях, на форумах и т.д. Но я сам столкнулся на заре работы с флешем. В процессе разработки обнаружилось, что это очень сильно вредит, полдня как-то отлавливал баг из-за этого. Сейчас детализировать вам точно не смогу, т.к. было это у меня давно, но помню, что приводило к глюкам в работе кода, связанным с незапланированными событиями, когда поле var текстового поля использовалось, менялись его значения.
Кажется, это приводило к тому, что значение определенной переменной в коде кадра бралось не из логики работы этого кода, а из того значения, которое стояло в текстовом поле.
В общем, это такое же правило, как и не писать код на мувиках и кнопках, не использовать сцен и т.д.
а ещё вопрос, а меняется ли ситуация, если у меня это кнопка находится на 30 кадре Movie Clipа
Сделайте ее не на 30-м кадре.
Если у вас к прискорбию все сделано не в одном кадре таймлайна, то лучше всего - делать все элементы навигации на слое, который растянут на весь таймлайн.
Научитесь манипулировать навигационными элементами (кнопками или содержащими их мувиками) с помощью свойства _visible.
То есть:
Все элементы присутствуют на таймлайне заранее.
Все обработчики назначаются заранее.
В нужные моменты включаете видимость нужных навигационных элементов, или ее (видимость) отключаете.
Если нет возможности что-то разместить на сцене заранее (например, что-то подгружается извне или из библиотеки), то в этот самый момент и нужно назначать обработчики, следя за тем, чтобы все объекты, участвующие в определении функции, существовали.
Что касается заголовка вашей темы. Если вы определяете в первом кадре какую-то примитивную переменную, то и на последующих кадрах она останется так же определенной.
Это относится именно к примитивному типу (числа, булевы величины). но если ваша переменная - это объектная ссылка на кнопку или мувик, то они уже должны быть в данном кадре, где происходит сама ссылка.
всё спасибо большое за помощь, сделал
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.