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

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Flash > Общие вопросы

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

Регистрация: May 2004
Сообщений: 136
Отправить сообщение для B0Bka с помощью ICQ
По умолчанию ПОМОГИТЕ: с созданием динамического меню

вопрос такой:
есть в библиотеке мувик item (который состоит из залитой области и textfield'a)

делаю так:
размножаю его в пустой мувик (emty)

_root.emty.attachMovie("item", "item1", 1);
_root.emty.item1._x=0;
_root.emty.item1._y=0;
_root.emty.item1._width=50;
_root.emty.item1._height=20;
_root.emty.item1.txtms.text="File";

потом следующий:

_root.emty.attachMovie("item", "item2", 2);
_root.emty.item2._x=_root.emty.item1._width;
_root.emty.item2._y=0;
_root.emty.item2._width=50;
_root.emty.item2._height=20;
_root.emty.item2.txtms.text="Goto";

потом для каждого:

_root.emty.item1.onRollOver = function() {
if (prss1==1){
dellAll(); //убить все подменю
focused=true;
create1(); //создать подменю для первого пункта
}
}

_root.emty.item1.onRollOut = function() {
focused=false;
}

_root.emty.item1.onPress = function() {
if (prss1==0){
trace("select 0");
focused=true;
trace("focused "+focused);
prss1=1;
create1();
}
else if (prss1==1){
trace("select 1");
dellAll();
prss1=0;
}
}


короче геморой полный когда этих меню куча
можно ли как-нибудь динамически построить?

и как сделать функции .onPress .onRollOut .onRollOver для всех пунктов?

и еще вопрос: у пунктов различный текст в текстфилде, приходилось изменять размер объектов как:
_root.emty.item2._width=50;
_root.emty.item2._height=20;
но тогда он начинает неправильно позиционироваться через ._x и ._y


Последний раз редактировалось B0Bka; 07.08.2004 в 01:44.
Старый 07.08.2004, 01:53
artfla$her вне форума Посмотреть профиль Отправить личное сообщение для artfla$her Найти все сообщения от artfla$her
  № 2  
artfla$her
 
Аватар для artfla$her

Регистрация: Apr 2004
Адрес: Петербург
Сообщений: 549
Отправить сообщение для artfla$her с помощью ICQ
Извини, не совсем понял всех твоих вопросов (просто башка забита другим сейчас). Размножить кнопки можно через цикл. Вот пример

for (var i=0; i<count; i++){
clip = "item"+i;
_root.emty.attachMovie("item", clip, i);
//далее для кнопки все свойства проставляешь

_root[clip].onPress = function(){
//твой код
}
//и далее все обработчики наведения, отжатия и тп.

}

Надеюсь, идею уловил? Кстати, ты и так в своем примере строишь динамически меню

Текст фиелд имеет свойство autoSize - отвечает за автомасштабирование поля. Возможные значения - "left" или true, "right", "center", false или "none". Эксперементируй!
__________________
За двумя зайцами погонишься - от егеря по морде получишь

Старый 07.08.2004, 02:04
B0Bka вне форума Посмотреть профиль Отправить личное сообщение для B0Bka Найти все сообщения от B0Bka
  № 3  
B0Bka
 
Аватар для B0Bka

Регистрация: May 2004
Сообщений: 136
Отправить сообщение для B0Bka с помощью ICQ
Цитата:
Оригинал написал(а) artfla$her
... skip
да понял... попробую, спасибо за оперативность

на счет текстфилда:
я имел ввиду не состояние текстового поля, а то что если я изменил размеры аттаченого мувика то он вставляется не туда куда я сообщаю ему координатами:
_root.empty.item14._x=FROM_LEFT;
_root.empty.item14._y=FROM_TOP;
а вот если не менять размеры, то вставляется все нормально

и еще маленький вопрос:
как во время вставки мувика передать ему координаты?
что-то типа: _root.men.attachMovie("item", "item14", 14, {x, y});
но что-то не работает, напомните плиз, а то я забыл

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

Регистрация: Apr 2004
Адрес: Петербург
Сообщений: 549
Отправить сообщение для artfla$her с помощью ICQ
_root.men.attachMovie("item", "item14", 14, {_x: 100, _y:50, _alpha: 90, _width: 70});

Третьим параметром, вообще говоря, в методе attachMovie передается клип, с которого аттачируемый мувик перенял бы все свойства (кроме _name, конечно). Но т.к. этот третий параметр по сути имеет объектный тип, то можно в качестве его значений передать объект {}, где указать все нужные свойства через запятую, а двоеточием отделяются значения.
__________________
За двумя зайцами погонишься - от егеря по морде получишь

Старый 07.08.2004, 02:18
Штрек вне форума Посмотреть профиль Отправить личное сообщение для Штрек Найти все сообщения от Штрек
  № 5  
Штрек

Регистрация: Dec 2002
Адрес: Сочи
Сообщений: 2,819
Цитата:
Оригинал написал(а) B0Bka

на счет текстфилда:
я имел ввиду не состояние текстового поля, а то что если я изменил размеры аттаченого мувика то он вставляется не туда куда я сообщаю ему координатами:
_root.empty.item14._x=FROM_LEFT;
_root.empty.item14._y=FROM_TOP;
а вот если не менять размеры, то вставляется все нормально
myMovieClip.localToGlobal(point)

Цитата:
Оригинал написал(а) B0Bka
и еще маленький вопрос:
как во время вставки мувика передать ему координаты?
что-то типа: _root.men.attachMovie("item", "item14", 14, {x, y});
но что-то не работает, напомните плиз, а то я забыл
_root.men.attachMovie("item", "item14", 14, {_x:100, _y:200,_alpha:50}); //и тд.

Старый 07.08.2004, 02:49
B0Bka вне форума Посмотреть профиль Отправить личное сообщение для B0Bka Найти все сообщения от B0Bka
  № 6  
B0Bka
 
Аватар для B0Bka

Регистрация: May 2004
Сообщений: 136
Отправить сообщение для B0Bka с помощью ICQ
Цитата:
Оригинал написал(а) artfla$her
Извини, не совсем понял всех твоих вопросов (просто башка забита другим сейчас). Размножить кнопки можно через цикл. Вот пример

for (var i=0; i<count; i++){
clip = "item"+i;
_root.emty.attachMovie("item", clip, i);
//далее для кнопки все свойства проставляешь

_root[clip].onPress = function(){
//твой код
}
//и далее все обработчики наведения, отжатия и тп.

}
вот тут у меня одна проблема:
у тебя написана функция _root[clip].onPress = function(){
в цикле, но ведь это сработает только для последнего элемента, т.е. для всех пунктов меню будет то действие, которое было установлено для последнего
или я что-то не так понял?

Старый 08.08.2004, 00:04
artfla$her вне форума Посмотреть профиль Отправить личное сообщение для artfla$her Найти все сообщения от artfla$her
  № 7  
artfla$her
 
Аватар для artfla$her

Регистрация: Apr 2004
Адрес: Петербург
Сообщений: 549
Отправить сообщение для artfla$her с помощью ICQ
Почему? По-порядку берутся имена клипов - clip0, clip1, clip2, clipN. Для каждого из них создается их собственный обработчик события onPress. Да, если ты напишешь однозначный код в этом обработчике, то для всех кнопок будет одно и тоже действие. Но ведь можно сделать, например, так -
funcArray = ["function1", "function2", "functionN"];

В цикле - this.myFunc = funcArray[i];
Далее в обработчике OnPress делаешь строчку
_root[this.myFunc]();

Таким образом при нажатии на кнопку будет выполняться конкретная (именно ЕЕ) функция. Пользуйся созданными свойствами объектов - они никогда не подводят. (пример с функцией, конечно, не совсем удобен, но я имею в виду не только функции)
__________________
За двумя зайцами погонишься - от егеря по морде получишь

Старый 08.08.2004, 01:46
B0Bka вне форума Посмотреть профиль Отправить личное сообщение для B0Bka Найти все сообщения от B0Bka
  № 8  
B0Bka
 
Аватар для B0Bka

Регистрация: May 2004
Сообщений: 136
Отправить сообщение для B0Bka с помощью ICQ
нет, ты не понял вопроса:

смотри пишу следующее:

function press_func1(){
trace("function press_func1()");
}
function press_func2(){
trace("function press_func2()");
}
function press_func3(){
trace("function press_func3()");
}

var up=0;
for (var i=0; i<3; i++){
clip = "item"+i;
_root.attachMovie("item", clip, i);

up=up+50;
_root[clip]._y=up;
_root[clip]._x=50;
_root[clip].onPress = function(){
var rrr="press_func"+i;
_root[rrr]();
}
}

и без разницы на какой клип жмешь, в любом случае выводит
"function press_func3()"

попробуй, исходник прилагается
Вложения
Тип файла: zip mcl.zip (4.4 Кб, 72 просмотров)

Старый 08.08.2004, 02:00
artfla$her вне форума Посмотреть профиль Отправить личное сообщение для artfla$her Найти все сообщения от artfla$her
  № 9  
artfla$her
 
Аватар для artfla$her

Регистрация: Apr 2004
Адрес: Петербург
Сообщений: 549
Отправить сообщение для artfla$her с помощью ICQ
_
Вложения
Тип файла: zip 123.zip (4.3 Кб, 77 просмотров)
__________________
За двумя зайцами погонишься - от егеря по морде получишь

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

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
2 B0Bka
если ты передашь (когда аттчишь) мувику еще одну переменную _root.attachMovie("item", clip, i,{i:i});
и воспользуюшся ею в onPress (var rrr="press_func"+(this.i+1), то все встанет на свои места
Вложения
Тип файла: zip mcl_.zip (4.2 Кб, 68 просмотров)

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

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

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


 


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


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