PDA

Просмотр полной версии : Процедура в ActionScript.


VoCz
23.05.2006, 19:18
Вообщем, у меня следующая цель:
Поле n*n клеток.
У каждой клетки есть свои параметры:
- местоположение - A1, B7 и так далее, как в морском бое/шахматах ;)
- имя текста

Эти параметры нужны для того чтобы при клике на клетку открывался хинт (изначально пустой муви-клип из библиотеки) и в нем было показано
место положение и заданный текст.


Мне нужна эта функция для того, чтобы не тупо вручную дублировать клетки... а все это упростить до прописывания в первом кадре мувика.

Люди, подскажите что и как делать, ибо с ЭкшнСкриптом я не дружу :)

саму функцию я себе представляю так:
параметры: "местоположение" и "текст"
"местоположение" = *заданный пользователем текст"
"текст" = *заданный пользователем текст"

Usnul
23.05.2006, 23:22
малость переувлекся примером, но в общем приверно так:
_root.cellSize=50;
cCell = function(x,y,hint){
_root.createEmptyMovieClip("c_"+x+"_"+y,x*100+y);
_root["c_"+x+"_"+y]._x=x*_root.cellSize;
_root["c_"+x+"_"+y]._y=y*_root.cellSize;
_root["c_"+x+"_"+y].createTextField("h",1,0,0,45,45);
_root["c_"+x+"_"+y].h.html = true;
_root["c_"+x+"_"+y].h.wordWrap = true;
_root["c_"+x+"_"+y].h.border = true;
_root["c_"+x+"_"+y].h.htmlText = "<font face='Tahoma' size='10'>"+hint+"</font>";
}

_root.hints = new Array("Lol","Rolf!","Lmao","IKnowYou","YourMom","YourFace","WTF","OMG","YHBT","Me is flasher","CowSayMoo","CatSayMeow","Well, Hi There.","This is a hint.");
_root.colors = new Array("000000","FFcc00","FF00FF","00FF00","FF0000","0000FF","ccFF00","00ccFF","cc00FF","FF00cc","00FFFF","FFFF00");
for(i=0;i<=13;i++){
for(j=0;j<=13;j++){
cCell(i,j,"<font color='#"+_root.colors[Math.floor(Math.random()*_root.colors.length)]+"'>"+_root.hints[Math.floor(Math.random()*_root.hints.length)]+"</font>");
}
}

скопируй это все в скрипт первого карда пустого флеш фильма и нажми Ctrl+Enter.

ЗЫ
если что непонятно спрашивай.

VoCz
24.05.2006, 01:45
Пасиб, меня больше интересует как бы заменить
" for(j=0;j<=13;j++){
cCell(i,j,"<font color='#"+_root.colors[Math.floor(Math.random()*_root.colors.length)]+"'>"+_root.hints[Math.floor(Math.random()*_root.hints.length)]+"</font>");
}"

на прописание параметров для кнопок и, соответственно, самой функции.

Usnul
24.05.2006, 01:53
_root.c_1_1.onPress = function(){
trace("Ты нажал на кнопку с координатами (1,1)!")д
}

VoCz
27.05.2006, 22:05
Видимо я очень тупой :)

Но как сделать вместо рандомизации текста рандомизацию мувиков из библиотеки?

В массиве ясно: _root.hints = new Array("movie1","movie2","movie3","movie4","movie5");

_root["c_"+x+"_"+y].createTextField("h",1,0,0,45,45); - а вот тут как быть?
Я понимаю что где-то нужно DuplicateMovieClip вставить, но не догоняю где... :( Перечитываю второй раз учебник по ЭкшнСкрипту, но все равно для меня он полная загадка...

VoCz
28.05.2006, 10:22
ап!!!

VoCz
28.05.2006, 16:08
Никто не подскажет? :(

Nirth
28.05.2006, 16:23
тема закрыта, так как автор начал в ней флудить.

KUZEN
28.05.2006, 16:30
numCubes = 100;
numColumns = 10;
margin = 10;
for (var i = 0; i<numCubes; i++) {
_root.attachMovie("mc", "mc"+i, i);
var m = _root["mc"+i];
m._x = (m._width+margin)*(i%numColumns);
m._y = Math.floor(i/numColumns)*(m._height+margin);
//
m.onPress = function() {
trace("x : "+this._x);
trace("y : "+this._y);
};
}
Вместо трейсов поставишь аттачт твоего пустого мувика и там уже будешь отображать свои координаты ... mc - Linkage мувика с нарисованной клеткой