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

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Flash > Action script 2.0

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

Регистрация: Jan 2002
Адрес: Kharkov
Сообщений: 57
По умолчанию Создание тесктового поля из класса

Вообщем нужно мне сделать ползунок и им из линейки значений выбирать значение. Делаю его с помощью класса.
Вернее у меня есть мувиклип, к которому привязан класс описывающий его логику.
Поскольку начальное значение линейки и конечное могут меняться, то промежутотчные значения расчитываются на ходу. Так вот проблема в том чтобы создать тектовые поля с этими значениями под линейкой выбора.

есть у меня такой метод куда приходит х координата текстового поля, которого нужно создать. Как его правильно создавать и можно ли это вообще сделать из класса? Я делаю так
Код:
class slider extends MovieClip{
 ....................................................
        function insertTextField(x:Number){
               this.createTextField('tf' + x, x, x - 10, yoffset , 20, 20);
               eval('tf' + x).text = "test";
        }
 ....................................................
}
такой способ не работает, хотя по идее он бы ещё и матюкнуться должен поскольку объект 'tf' + x не объявлен.

Старый 28.10.2004, 21:20
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 2  
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
вот так, однако, работает
Код:
class Slider extends MovieClip{
        function insertTextField(x:Number){
               this.createTextField('tf' + x, x, x - 10, 40 , 20, 20);
               eval('this.tf' + x).text = "test";
        }
}
имхо логичнее : this['tf'+x].text = "test";
а зачем его объявлять, если ты его создаешь, че-то не пойму

Старый 29.10.2004, 11:05
Manowar1 вне форума Посмотреть профиль Отправить личное сообщение для Manowar1 Найти все сообщения от Manowar1
  № 3  
Manowar1

Регистрация: Jan 2002
Адрес: Kharkov
Сообщений: 57
Ну так, через массив можно, но текстовые поля при этом всёравно не создаются. Может this это только класс без привязки к мувику? Хотя если делать this.attachMovie то этот самый атач происходит именно на мувик привязанный к this. Вообщем ерунда какая-то. Я проблему решил, вместо this использую _parent. Вот на _parent текстовые поля создаются без проблем, но при этом для даннного мувика приходится сначала создавать новый мувиклип, а потоом к ниму атачить сам мувик.В приниципе это не проблема, конечно, просто хотелось сделать что-то без дополнительных средств из вне.

Старый 29.10.2004, 14:30
Proman вне форума Посмотреть профиль Отправить личное сообщение для Proman Найти все сообщения от Proman
  № 4  
Proman
 
Аватар для Proman

Регистрация: Jul 2002
Адрес: Запорожье
Сообщений: 56
Отправить сообщение для Proman с помощью ICQ
Manowar1
А ты сам не запутался?
Метод то вызвал? Всмысле my_clip.insertTextField(num) , пока не вызовешь ничего создаваться не будет. Сам метод рабочий, все в порядке.
__________________
Don't use the Force, Luke - try to THINK!

Старый 29.10.2004, 15:09
Manowar1 вне форума Посмотреть профиль Отправить личное сообщение для Manowar1 Найти все сообщения от Manowar1
  № 5  
Manowar1

Регистрация: Jan 2002
Адрес: Kharkov
Сообщений: 57
Вызывать то вызываю, делается это правда, в момент исполнения конструктора. Т.е. вполне вероятно, что когда делается атачМуви с передачей параметров класса, сначала запускается конструктор и только потом происходит сам атач, тогда может возникнуть ситуация, что вроде как негде ещё пока создавать тектовые поля, хотя в конструкторе я делаю также мувиАтач другого мувика, который без проблем появляется. Вообще ясно, чтоо ничего не ясно. Мой же работающий код будет выглядеть так.
Код:
class slider extends MovieClip{
        function slider(){
            insertTextField(100);
            insertTextField(120);
        }
 ....................................................
        function insertTextField(x:Number){
               _parent.createTextField('tf' + x, x, x - 10, yoffset , 20, 20);
               _parent['tf' + x].text = "test";
        }
 ....................................................
}
вместо неработающего
Код:
class slider extends MovieClip{
        function slider(){
            insertTextField(100);
            insertTextField(120);
        }
 ....................................................
        function insertTextField(x:Number){
               this.createTextField('tf' + x, x, x - 10, yoffset , 20, 20);
               eval('tf' + x).text = "test";
        }
 ....................................................
}

Старый 29.10.2004, 15:21
Proman вне форума Посмотреть профиль Отправить личное сообщение для Proman Найти все сообщения от Proman
  № 6  
Proman
 
Аватар для Proman

Регистрация: Jul 2002
Адрес: Запорожье
Сообщений: 56
Отправить сообщение для Proman с помощью ICQ
Твой "неработающий пример" полностью рабочий он реально содает два текстовых поля, кинь исходники я посмотрю в чем глюк.
__________________
Don't use the Force, Luke - try to THINK!

Старый 29.10.2004, 16:37
Manowar1 вне форума Посмотреть профиль Отправить личное сообщение для Manowar1 Найти все сообщения от Manowar1
  № 7  
Manowar1

Регистрация: Jan 2002
Адрес: Kharkov
Сообщений: 57
Держи, это немного изменённый пример, но суть полностью осталось описанной в посте.
Вложения
Тип файла: zip tests.zip (5.0 Кб, 948 просмотров)

Старый 29.10.2004, 17:24
Proman вне форума Посмотреть профиль Отправить личное сообщение для Proman Найти все сообщения от Proman
  № 8  
Proman
 
Аватар для Proman

Регистрация: Jul 2002
Адрес: Запорожье
Сообщений: 56
Отправить сообщение для Proman с помощью ICQ
Все что могу тебе сказать
Цитата:
MovieClip.createTextField()
Availability
Flash Player 6.

Usage
my_mc.createTextField(instanceName:String, depth:Number, x:Number, y:Number, width:Number, height:Number) : Void

Parameters
instanceName A string that identifies the instance name of the new text field.

depth A positive integer that specifies the depth of the new text field.

x An integer that specifies the x coordinate of the new text field.

y An integer that specifies the y coordinate of the new text field.

width A positive integer that specifies the width of the new text field.

height A positive integer that specifies the height of the new text field.

__________________
Don't use the Force, Luke - try to THINK!

Старый 29.10.2004, 19:44
Manowar1 вне форума Посмотреть профиль Отправить личное сообщение для Manowar1 Найти все сообщения от Manowar1
  № 9  
Manowar1

Регистрация: Jan 2002
Адрес: Kharkov
Сообщений: 57
Да читал раз 10 или больше, но что ты мне хотел скеазать этим я не понял

Старый 30.10.2004, 02:06
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 10  
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
он хотел сказать что текстфилд у тебя не создается, сравни
Код:
class test extends MovieClip{
	function test(){
		var i:Number;
		for (i=1; i< 5; i++){
			insertTextField(i);
		}
	}
	function insertTextField(x:Number){
			this.createTextField("tx" + x, x,20,x*30,0,0 );
			this['tx' + x].autoSize=true
			this['tx' + x].text = "test";
	}
}


Последний раз редактировалось silin; 30.10.2004 в 02:08.
Создать новую тему   Часовой пояс GMT +4, время: 17:13.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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