Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   переменная как параметр функции (http://www.flasher.ru/forum/showthread.php?t=72024)

maiik 17.11.2005 21:22

переменная как параметр функции
 
Добрый день..
помогите пожауйста в следующем:

у меня написана функция

function mike (param1) {.....}

так вот, если param1 вписывать прямо ручками типа mike (5) то все работает.. а мне нужно туда вставить переменную.. с этим засада. вот такой код:

for (i=0; i<num1; i++) {
param1 = "this.kn" add i;
trace (param1);
//выдает this.kn0 , то что мне надо (без кавычек, все правильно).
mike(param1); .. не работает...

а если вставлять в параметр тот самый результат трейса, все ок.
mike(this.kn0);

МОЖНО ЛИ ВСТАВЛЯТЬ ПЕРЕМЕННЫЕ КАК ПАРАМЕТР ФУНКЦИИ? и как?

iNils 17.11.2005 21:25

for (i=0; i<num1; i++) {
mike(this["kn"+i]);
}

maiik 17.11.2005 21:36

Спасибо огромное!! все получилось!

iNils 17.11.2005 21:43

Проблема твоя была в том, что ты передовал строку, а не ссылку на переменную. И трейс должен был показывать значение переменной, а не путь до нее с именем.

maiik 18.11.2005 16:13

хорошо... дальше у меня встает другая проблема
(вобще я пытаюсь со своими повехностными знаниями в AS написать 2-мерное меню с редактируемыми звне пунктами (в текстовике)( :cool: )

есть глобальная функция (взял на форуме)


_global.dClip = function(movclip, numclips, shifty) {
var clipname = movclip._name;
trace (clipname);
trace(_root[clipname]._y);
var newname = "";
for (i=1; i<=numclips; i++) {
newname = clipname+i;
trace (newname);
duplicateMovieClip(clipname, newname, this.getNextHighestDepth());
_root[newname]._y += shifty;
trace(_root[newname]._y);
shifty += 10;
}
}

потом вызываю функцию кнопкой

on (release) {
dClip(this.kn0, 3, 20);

}


трейс выдает вроде правильные значения
kn0
164.85
kn01
184.85
kn02
194.85
kn03
204.85

но новый mc создается только один (вместо 3х).. я проверял, создается только kn03... почему?.. :eek:

St. Father 18.11.2005 16:31

_global.dClip = function (movclip, numclips, shifty)
{
for (i = 1; i <= numclips; i++)
{
duplicateMovieClip (movclip, movclip._name+i, getNextHighestDepth ());
_root[movclip._name+i]._y += shifty*i;
}
};

мож так?

maiik 18.11.2005 17:54

да, получилось! спасибо оромное.. я дилетант, н решение с shifty*i мне показалось элегантным :-)

глядишь так общими усилиями напишем мое меню, выложу обязательно

maiik 18.11.2005 20:58

такк-с.. теперь такая у меня морока..

исходная кнопка меню педсавляет собой мувик в котором 3 слоя (подложка, отекстовый блок (txtnaknopke), и кнопка с событием
on (release) {getURL(urla);})

дублирование кнопок меню вызывается событием:


on (release) {

for (i=1; i<3; i++) {
this["kn"+i].txtnaknopke.text = l_a(0,i);
//l_a - это функция возвращает имя для кнопки из 2мерного массива или ссылку (если есть 3й параметр. она работает, все возвращает правильно...)
this["kn"+i].but.urla = l_a(0,i,0);
// вот тут как раз присваивается переменной ссылка.
trace (this["kn"+i].but.urla); //возвращает все ништяк
h01.html
h02.html
h03.html
h04.html как забито в массиве.
}

}
а раньше, на предыдущей стадии, у меня на кнопке переменная была дана как this.parent.urla (то есть кнопа сама брала значение переменной с верхнего уровня и все работало), а теперь то у меня не одна кнопка, поэтому надо именно каждой копии исх. кнопы насаждать разное значение urla.. то есть сверху. и так не работает. undefined мать его... :mad:

St. Father 21.11.2005 08:51

1. я бы не стал использовать кнопку в клипе только для ссылки (если надо - то надо, но я надобности не вижу)
2. ниченипонял что не работает? где ундеф? как ты его пытаешься взять?

maiik 21.11.2005 20:10

ну у меня создаются мувиклипы в которых кнопки (this.kn1.but и таких несколько) потом им передается каждой разный урл (переменная urla) но в том то и дело что не передается.. когда я прописывал в этой кнопке ссылку на верхний уровень

on (release) {
getURL(this._parent.urla);
}


тогда все работало, но тогда у всех кнопок будут одинаковые урлы... а надо именно при создании дубликата ему сверху говорить что мол у тебя такая urla, а у тебя такая. вот


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

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