Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   createEmptyMovieClip (http://www.flasher.ru/forum/showthread.php?t=55569)

Zergy 09.03.2004 21:23

createEmptyMovieClip
 
Задача такая:
Нужно иметь мувик, который содержит вложеные мувики. Конкретно, это должна быть анимированная кнопка. А в ней есть статические и движущиеся объекты. Поэтому нужно иметь вложенные мувики.

Всё содержимое рисуется средствами Ac tionScript, то есть сначала создаётся "главный" мувик со статической начинкой и внутри его создаётся мувик, который предполагается двигать.
_root.createEmptyMovieClip("мувик_отецъ",0)
with(this){
lineStyle()
....(потом рисование)
}

Проблема в том, что когда я создаю вложеный мувик таким способом
мувик_отецъ.createEmptyMovieClip("имя",1)
он рисуется внутри мувик_отецъ и никак не обозначает своё самостоятельное присутствие на сцене, хотя он виден.

sergwizard 10.03.2004 02:21

Очень загадочная фраза: ...и никак не обозначает своё самостоятельное присутствие на сцене, хотя он виден.

Ну, попробуй такой вариант:
Код:

MovieClip.prototype.moveMe = function(){
        this.onEnterFrame = function(){
                if(this._x<=0){
                        right = true;
                }
                if(this._x>=200){
                        right = false;
                }
                right ? this._x++ : this._x--;
        }
}
this.createEmptyMovieClip("father",1);
        with(father){
                lineStyle(0,0xC0C0C0,0);
                beginFill(0xC0C0C0,100);
                lineTo(300,0);
                lineTo(300,100);
                lineTo(0,100);
                lineTo(0,0);
                endFill();
                _x = 100;
                _y = 100;
}
father.createEmptyMovieClip("son",1);
        with(father.son){
                lineStyle(50,0xFF0000,100);
                moveTo(50,50);
                lineTo(50.2,50);
                moveMe();
}
father.onRelease = function(){
        click = (click+1)%2;
        click ? father.son._visible = false : father.son._visible = true;
}


nuran 10.03.2004 12:17

Re: createEmptyMovieClip
 
Цитата:

Оригинал написал(а) Zergy
он рисуется внутри мувик_отецъ и никак не обозначает своё самостоятельное присутствие на сцене, хотя он виден. [/b]
ты бредишь

TTS 10.03.2004 17:19

Re: createEmptyMovieClip
 
Цитата:

Оригинал написал(а) Zergy
_root.createEmptyMovieClip("мувик_отецъ",0)
with(this){

Может, надо было написать with(_root.мувик_отецъ)... ?
Цитата:

Оригинал написал(а) Zergy
мувик_отецъ.createEmptyMovieClip("имя",1)
Может, надо было написать _root.мувик_отецъ.createEmptyMovieClip("имя",1) ?

silin 10.03.2004 20:16

в плеере виден, а редакторе, наверное, 'никак не обозначает.. '
так и должно быть, о чем речь ?

Zergy 10.03.2004 20:57

Спасибо ребята, что откликнулись.

Очень загадочная фраза: ...и никак не обозначает своё
самостоятельное присутствие на сцене, хотя он виден.

Да, э точно;). Я имел ввиду что рисование присходит и на сцене он на самом деле появляется, но в Debuggere название дочернего клипа небыло. Но это уже не главная проблема, птому что я не правильно указывал параметры при создании дочернего клипа. Тормознул, потому что в ASP ушёл и ActionScript забыл совсем ((.

sergwizard, у меня почти такой же код, как и ты опубликовал, разница

лиш в том что ты используешь прототипы, а я просто вешаю на нужный дочерний клип
son.onEnterFrame = function(){}

Проблема теперь моя в том, что названия клипов присваиваются произвольные, на примере это так

NameMC="but_mc"; 'название мувика'

this.createEmptyMovieClip(NameMC,1); - отец
eval(NameMC).createEmptyMovieClip(NameMC+"_SubMenu",2); -дочерний
with (NameMC.NameMC+"_SubMenu"){
lineStyle(1,SubMLineColor,100);
...

};

eval(NameMC+"."+NameMC+"_SubMenu").onEnterFrame = function()

{this._y--};

Так вот из за строки типа (NameMC.NameMC+"_SubMenu") в WITH обращение к клипу не происходит....

sergwizard 11.03.2004 03:32

Может быть, тебе лучше выложить исходник и точно сказать, что нужно... А то так, в слепую трудно представить, что ты хочешь сделать.

Штрек 11.03.2004 03:47

98% - дело в относительности координат, в которых рисуешь.
Ты бы сделал исходник, организовав бы всё как надо, без прогр.рисования/ручками/. А уж потом ...
Мастера найдутся. :p

silin 11.03.2004 21:50

я может опять невпопад, тогда пардон, но
если ты знаешь что (NameMC.NameMC+"_SubMenu") не существует, зачем пишешь
with (NameMC.NameMC+"_SubMenu"){
lineStyle(1,SubMLineColor,100);
...

};
это тоже, что with({}){...}
в результате рисуешь не в муве, а руте (т.е. видно, но неуправляемо)

Zergy 12.03.2004 14:16

Вложений: 1
Лучше действительно вывешу пример, чем парить мозги кусками кода.
В архиве два файла, первый untitled-2 - это рабочий файл, где мне необходимо добиться работоспособности и untitled-3, это файл, который я подогнал к рабочему состоянию.
Разница между двумя этими файлами в том, что в untitled-3 имена мувикам я задаю явно, а в untitled-2 имена задаются опираясь на переменную с именем начального мувика.

Проблема в том, что мувики нормально создаются опираясь на имя в переменной, но доступ к ним в WITH, опираясь на конструкцию типа NameMC.NameMC+"_SubMenu" не работает, а работает только если в WITH яно указать мувик but_mc.but_mc_SubMenu


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

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