![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
|
|
|
|||||
|
вопрос такой:
есть в библиотеке мувик 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. |
|
|||||
|
Извини, не совсем понял всех твоих вопросов (просто башка забита другим сейчас). Размножить кнопки можно через цикл. Вот пример
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". Эксперементируй! ![]()
__________________
За двумя зайцами погонишься - от егеря по морде получишь |
|
|||||
|
Цитата:
на счет текстфилда: я имел ввиду не состояние текстового поля, а то что если я изменил размеры аттаченого мувика то он вставляется не туда куда я сообщаю ему координатами: _root.empty.item14._x=FROM_LEFT; _root.empty.item14._y=FROM_TOP; а вот если не менять размеры, то вставляется все нормально и еще маленький вопрос: как во время вставки мувика передать ему координаты? что-то типа: _root.men.attachMovie("item", "item14", 14, {x, y}); но что-то не работает, напомните плиз, а то я забыл |
|
|||||
|
_root.men.attachMovie("item", "item14", 14, {_x: 100, _y:50, _alpha: 90, _width: 70});
Третьим параметром, вообще говоря, в методе attachMovie передается клип, с которого аттачируемый мувик перенял бы все свойства (кроме _name, конечно). Но т.к. этот третий параметр по сути имеет объектный тип, то можно в качестве его значений передать объект {}, где указать все нужные свойства через запятую, а двоеточием отделяются значения.
__________________
За двумя зайцами погонишься - от егеря по морде получишь |
|
|||||
|
Регистрация: Dec 2002
Адрес: Сочи
Сообщений: 2,819
|
Цитата:
Цитата:
|
|
|||||
|
Цитата:
у тебя написана функция _root[clip].onPress = function(){ в цикле, но ведь это сработает только для последнего элемента, т.е. для всех пунктов меню будет то действие, которое было установлено для последнего или я что-то не так понял? |
|
|||||
|
Почему? По-порядку берутся имена клипов - clip0, clip1, clip2, clipN. Для каждого из них создается их собственный обработчик события onPress. Да, если ты напишешь однозначный код в этом обработчике, то для всех кнопок будет одно и тоже действие. Но ведь можно сделать, например, так -
funcArray = ["function1", "function2", "functionN"]; В цикле - this.myFunc = funcArray[i]; Далее в обработчике OnPress делаешь строчку _root[this.myFunc](); Таким образом при нажатии на кнопку будет выполняться конкретная (именно ЕЕ) функция. Пользуйся созданными свойствами объектов - они никогда не подводят. (пример с функцией, конечно, не совсем удобен, но я имею в виду не только функции)
__________________
За двумя зайцами погонишься - от егеря по морде получишь |
|
|||||
|
нет, ты не понял вопроса:
смотри пишу следующее: 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()" попробуй, исходник прилагается |
|
|||||
|
_
__________________
За двумя зайцами погонишься - от егеря по морде получишь |
|
|||||
|
2 B0Bka
если ты передашь (когда аттчишь) мувику еще одну переменную _root.attachMovie("item", clip, i,{i:i}); и воспользуюшся ею в onPress (var rrr="press_func"+(this.i+1) , то все встанет на свои места |
![]() |
Часовой пояс GMT +4, время: 01:33. |
|
|
« Предыдущая тема | Следующая тема » |
|
|