Форум 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=92190)

MelDiz 18.02.2007 03:44

Очень ламерский вопрос: как в функцие указать имя мувиклипа?
 
Очень простой вопрос: есть один мувик qwerty и в него вложен еще один - zxc. В руте пишу пользовательскую функцию(в Бейсиках и Паскале она так называется...):
Код:

function asd(poi:MovieClip){
 poi._x = 0;
        }

что б вызвать даную ф-ю для мувика zxc пишу:
Код:

asd(_root.qwerty.zxc);
- ф-я не вызывается.
Подскажите как правильно нужно вызвать эту функцию для вложеного мувиклипа zxc.
Спасибо
П.С.: пишу asd(_root.qwerty) - работает...

miramax 18.02.2007 03:59

Функция asd находится в объекте _root, если ты её там объявил.
Сл-но обращаться к ней нужно в паскале-сишно-явовской форме
Код:

_root.asd();    //код в любом месте программы
Если вызов происходит из клипа _root.qwerty.zxc, и вкачестве аргумента передаётся сам клип , то для того что бы объект мог передать ссылку на самого себя - нужно юзать ключевое слово this.
Код:

_root.asd(this)  //код в клипе zxc
Цитата:

Сообщение от MelDiz
П.С.: пишу asd(_root.qwerty) - работает...

Здесь ты передал ссылку на qwerty, а не на вложенный в него zxc.

MelDiz 18.02.2007 04:23

Что то попробовал по разному написать, то что вы посоветовали и ничё не работает. Напишите плз простой пример

Так никто и не поможет? Хоть подскажите по каким словам поиск делать!
Пробовал вводить в поиск "формалье, фактические параметры", "вызов процедур" - ничего не вывело

pkfun 18.02.2007 12:49

Код:

var myMcOne:MovieClip = this.createEmptyMovieClip('mcOne', this.getNextHighestDepth());
var myMcTwo:MovieClip = myMcOne.createEmptyMovieClip('mcTwo', myMcOne.getNextHighestDepth());
//
function getMcHeight(mc:MovieClip):Number {
        return mc._height;
}
//
var myMcOneHeight:Number = getMcHeight(myMcOne);
var myMcOneHeight:Number = getMcHeight(myMcTwo);

Воспользуйтесь тем, что при создании мувиклипа( и при его вставке на сцену), он возвращает ссылку на свой экземпляр. Вы запоминаете ссылку в переменную и дальше работаете только с ней.
В примере выше: на руте (this) создается пустой мувиклип mcOne, ссылка на него запоминается в переменной myMcOne, затем внутри этого мувиклипа создается еще один пустой мувиклип mcTwo, ссылка на него запоминается в переменной myMcTwo.
После этого у нас на сцене есть два мувиклипа и в нашем распоряжении есть две переменный, хранящие ссылки на каждый.
Далее создаем функцию с неважно каким функционалом(главное понять принцип). В данном случае, функция возвращает высоту мувиклипа, который передается ей в качестве аргумента.
В результате мы нигде не используем никаких путей и код выглядит более 'технологичным'.

MelDiz 18.02.2007 15:26

miramax, pkfun,спасибо, тема закрыта


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

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