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

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

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

Регистрация: Jun 2000
Адрес: Finland, Kuopio
Сообщений: 79
По умолчанию Функция-таргетинг проблема

Привет всем,

Пожалуйста помогите мне справиться со следующей задачей:

У меня есть файл, состоящий из одного кадра. Внем находятся клипы с кнопками, их id имеют цифровые значения. В главный timeline грузятся переменные с теми же id.

Я хочу написать функцию которая бы звалась из кнопок в клипах. Эта функция должна создать текстовое поле в клипе и загрузить текст из значения переменной, пользуясь id клипа для определения id переменной.

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

Привожу код:

Код:
stop();
var va37 = "test";
function showCaption() {
    this.createTextField("mytext", 0, 10, 100, 120, 20);
    mytext.multiline = true;
    mytext.wordWrap = true;
    mytext.border = true;
    mytext.background = true;
    mytext.variable = "";
    myformat = new TextFormat();
    myformat.color = 0xff0000;
    myformat.bullet = false;
    myformat.underline = false;
    mytext.text = _root.va+(getProperty(this, _name));
    mytext.setTextFormat(myformat);
}
Заранее благодарен за помощь и внимание.
__________________
Regards, Igor Polyakov
----------------------
www.polyakov.org


Старый 25.04.2002, 11:26
Parafly вне форума Посмотреть профиль Отправить личное сообщение для Parafly Посетить домашнюю страницу Parafly Найти все сообщения от Parafly
  № 2  
Parafly

Регистрация: Jan 2001
Адрес: Russia, Ekaterinburg
Сообщений: 215
Отправить сообщение для Parafly с помощью ICQ
Цитата:
mytext.text = _root.va+(getProperty(this, _name));
Как минимум это - не stuff. Eval нужен.
mytext.text = eval("_root.va"+this. _name);

Во-вторых - трабл с путями. trace(this); попробуй.
Насколько мне известно - либо передавай рутовой функции ссылку на вызвавшего, либо саму функцию посели в клипы (что правильнее, потому что больше она никому не нужна).

Assuming:
внутри клипа
Код:
function showCaption() {
	this.createTextField("mytext", 0, 10, 100, 120, 20);
	mytext.text = eval("_root.va"+this._name);
}
Хотя... убей - не пойму, зачем id хранить прям в имени кнопки.
__________________
Flash - борщ китайскими палочками.

Старый 25.04.2002, 13:11
Nox Noctis вне форума Посмотреть профиль Отправить личное сообщение для Nox Noctis Посетить домашнюю страницу Nox Noctis Найти все сообщения от Nox Noctis
  № 3  
Nox Noctis
don't panic!
 
Аватар для Nox Noctis

Регистрация: Aug 2001
Сообщений: 4,121
Цитата:
Оригинал написал(а) Parafly
либо саму функцию посели в клипы (что правильнее, потому что больше она никому не нужна).
[MX]:
functionName.apply (thisReference, [parameter1, parameter2.....]);

functionName - имя функции
thisReference - ссыла на объект, к которому ее применяем
[parameter1, parameter2.....] - массив параметров функции

внутри самой функции везде пишем 'this' в качестве обращения к объекту

Старый 25.04.2002, 13:20
ig0r вне форума Посмотреть профиль Отправить личное сообщение для ig0r Посетить домашнюю страницу ig0r Найти все сообщения от ig0r
  № 4  
ig0r

Регистрация: Jun 2000
Адрес: Finland, Kuopio
Сообщений: 79
Интересно, где мы это пишем? Еще вопрос - как написать функцию, чтобы задать autoSize для текст фиелд (я подозреваю, что это не работает для createTextField)
__________________
Regards, Igor Polyakov
----------------------
www.polyakov.org


Старый 25.04.2002, 13:28
ig0r вне форума Посмотреть профиль Отправить личное сообщение для ig0r Посетить домашнюю страницу ig0r Найти все сообщения от ig0r
  № 5  
ig0r

Регистрация: Jun 2000
Адрес: Finland, Kuopio
Сообщений: 79
Вот мое нынешнее состояние, работает прекрасно, хотя очень сильно подозреваю, что можно поизящнее... одна беда- autoSize не работает, когда попытался вставить текстовое поле вместо того, чтобы криэйт, чтобы потом форматировать как аutosize, это не работает...

Код:
function showCaption(mc) {
    mc.createTextField("mytext", 0, 0, 0, 100, 20);
    with (mc.mytext) {
        multiline = true;
        wordWrap = true;
        border = true;
        background = true;
        autoSize = "left";
        backgroundColor = 0xFFFFCC;
        borderColor = 0x990000;
        selectable = "false";
    }
    var myformat = new TextFormat();
    with (myformat) {
        color = 0x990000;
        font = "_sans";
        size ="15";
    }
    mc.mytext.text = _root[mc._name+"_va"];
    mc.mytext.autoSize = "left";
    mc.mytext.setTextFormat(myformat);
    trace(mc);
}
__________________
Regards, Igor Polyakov
----------------------
www.polyakov.org


Старый 25.04.2002, 13:28
Parafly вне форума Посмотреть профиль Отправить личное сообщение для Parafly Посетить домашнюю страницу Parafly Найти все сообщения от Parafly
  № 6  
Parafly

Регистрация: Jan 2001
Адрес: Russia, Ekaterinburg
Сообщений: 215
Отправить сообщение для Parafly с помощью ICQ
to NoxNoctis:
Эмм... Это, как я понял, макромедийцы сделали макрос на тему
Цитата:
либо передавай рутовой функции ссылку на вызвавшего
Типа
Код:
_root.myFunc(this._target);

//в руте
function myFunc(targVictim){
  with(eval(targVictim)){
    this.sometingBad=true;
  }
}
Оно?..
__________________
Flash - борщ китайскими палочками.


Последний раз редактировалось Parafly; 25.04.2002 в 13:29.
Старый 25.04.2002, 14:42
Nox Noctis вне форума Посмотреть профиль Отправить личное сообщение для Nox Noctis Посетить домашнюю страницу Nox Noctis Найти все сообщения от Nox Noctis
  № 7  
Nox Noctis
don't panic!
 
Аватар для Nox Noctis

Регистрация: Aug 2001
Сообщений: 4,121
2Parafly
наверно так и есть... просто зачем городить огород, когда все уже украдено до нас ? ;)))


Последний раз редактировалось Nox Noctis; 25.04.2002 в 14:44.
Создать новую тему   Часовой пояс GMT +4, время: 00:30.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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