PDA

Просмотр полной версии : Помогите разобраться...


RomaFS
10.11.2005, 17:49
Перечисленные ниже вопросы рассматривались на этом форуме, однако я не смог найти на них достоверные ответы.

1 Как полностью избавиться от возникающего (при проигрывании Flash player 7) при нажатии правой кнопки контекстного меню? При возникновении оно делает неактивным и всю рабочую область.
Функция Stage.showMenu=false; не решает проблему(в меню остаются строки Settings Debugger).
2 Во время проигрывания проекта при нажатии кнопки мы создаём некоторый MovieClip из библиотеки. Сам MovieClip имеет программный код( и переменные созданные мною). Однако ни какими способами у меня не получилось присвоить этой переменной значение. Комбинации с _root[] не помогают... И остальные тоже...

ПОЖАЛУЙСТА, помогите решить проблемы!

RomaFS
10.11.2005, 19:19
Текст первого кадра :
"var lands=new Array();
lands.push('land1');lands.push('land2');lands.push('b1');lands.push('b2');
n=0;
var units=new Array();
var checked=new Array();"
Текст кнопки:
"on(press){n+=1;
var tcreateposx=50; tcreateposy=50; tcreatename='tank'+n;
attachMovie('tank','tank'+n,n);
lands.push('tank'+n);
units.push('tank'+n);
}
Текст мувиклипа Actions (просто для выполнения действий):
"onClipEvent(enterFrame){
if(Key.isDown(2)){
for(i=0;i<_root['checked'].length;i++){

//Мне нужно в каждом мувиклипе массива checked параметр nposx (создан мною, используется в тексте мувиклипов) присвоить определенное значение (например 1000)


}
}
}"

aksios
11.11.2005, 11:23
1. Посмотри мой тестовый пример (http://forum.psychanalyo.ru)
- что то из JS может работать.
2. А ты не пробовал свою переменную указать как _global?

RomaFS
11.11.2005, 17:25
Каждый элемент tank1..n должен иметь свою переменную nposx.
Мне подсказали:
_level0.tank1.<<instance?>>.nposx=100
А как узнать номер инстанции? Для переменных по умолчанию работает такой способ:
_level0.tank1._x=100 , а для созданных - нет.

P.S. на ссылочку не заходит...

Madasan
11.11.2005, 17:59
Комбинации с _root[] не помогают...
Как не помогают? :confused:
_root.checked = new Array();
_root.attachMovie('MyButton', 'MyButton', 500); n = 0;
MyButton.onPress = function() {
_root.attachMovie('MyClip', 'MyClip'+n, n);
checked.push(_root['MyClip'+n]);
_root['MyClip'+n].nposx = 0;
n += 1;
};
_root.createEmptyMovieClip('MyActions', 510);
_root.MyActions.onEnterFrame = function() {
if (Key.isDown(Key.ENTER)) {
for (i=0; i<_root.checked.length; i++) {
_root.checked[i].nposx = 1000+i;
trace(_root['MyClip'+i].nposx);
}
}
};

RomaFS
12.11.2005, 00:19
Записи
_root.tank1.nposx, _root.checked.length и _root['tank1'].nposx, root['checked'].length имеют одинаковые значения?

Madasan
12.11.2005, 03:34
Совершенно верно.
_root.tank1.nposx - обращение к вложенным объектам(клипам и т.п.) а также свойствам и методам этих объектов.
_root['tank1'].nposx - представление объектов как ассоциативных массивов, где 'tank1' - индекс элемента массива, т.е вложенного объекта, который может быть как клипом, так и другим массивом.

RomaFS
12.11.2005, 13:22
Я разобрался в своей проге: вся проблема в том, что у меня мувиклип tank1 находится в мувиклипе tank1! _root.tank1.tank1.nposx=100; Это достаточно неудобно. А вообще можно ли создавать мувиклипы с программным кодом, не создавая вложенных мувиклипов? А то при insert/symbol/movieclip нельзя писать код. И только после преобразования его в ещё один мувиклип можно писать код!

Madasan
13.11.2005, 12:27
А то при insert/symbol/movieclip нельзя писать код. И только после преобразования его в ещё один мувиклип можно писать код!
Какое-то очевидное невероятное! Не понятно о чем речь. :confused:

Nirth
13.11.2005, 15:03
Закрыто - причина: читать правила тысячу раз, и называть топики осмысленно