Просмотр полной версии : 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;
}
Оригинал написал(а) Zergy
он рисуется внутри мувик_отецъ и никак не обозначает своё самостоятельное присутствие на сцене, хотя он виден. [/B]
ты бредишь
Оригинал написал(а) Zergy
_root.createEmptyMovieClip("мувик_отецъ",0)
with(this){
Может, надо было написать with(_root.мувик_отецъ)... ?
Оригинал написал(а) Zergy
мувик_отецъ.createEmptyMovieClip("имя",1)
Может, надо было написать _root.мувик_отецъ.createEmptyMovieClip("имя",1) ?
в плеере виден, а редакторе, наверное, 'никак не обозначает.. '
так и должно быть, о чем речь ?
Спасибо ребята, что откликнулись.
Очень загадочная фраза: ...и никак не обозначает своё
самостоятельное присутствие на сцене, хотя он виден.
Да, э точно;). Я имел ввиду что рисование присходит и на сцене он на самом деле появляется, но в 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
Может быть, тебе лучше выложить исходник и точно сказать, что нужно... А то так, в слепую трудно представить, что ты хочешь сделать.
98% - дело в относительности координат, в которых рисуешь.
Ты бы сделал исходник, организовав бы всё как надо, без прогр.рисования/ручками/. А уж потом ...
Мастера найдутся. :p
я может опять невпопад, тогда пардон, но
если ты знаешь что (NameMC.NameMC+"_SubMenu") не существует, зачем пишешь
with (NameMC.NameMC+"_SubMenu"){
lineStyle(1,SubMLineColor,100);
...
};
это тоже, что with({}){...}
в результате рисуешь не в муве, а руте (т.е. видно, но неуправляемо)
Лучше действительно вывешу пример, чем парить мозги кусками кода.
В архиве два файла, первый untitled-2 - это рабочий файл, где мне необходимо добиться работоспособности и untitled-3, это файл, который я подогнал к рабочему состоянию.
Разница между двумя этими файлами в том, что в untitled-3 имена мувикам я задаю явно, а в untitled-2 имена задаются опираясь на переменную с именем начального мувика.
Проблема в том, что мувики нормально создаются опираясь на имя в переменной, но доступ к ним в WITH, опираясь на конструкцию типа NameMC.NameMC+"_SubMenu" не работает, а работает только если в WITH яно указать мувик but_mc.but_mc_SubMenu
Лучше действительно вывешу пример, чем парить мозги кусками кода.
В архиве два файла, первый untitled-2 - это рабочий файл, где мне необходимо добиться работоспособности и untitled-3, это файл, который я подогнал к рабочему состоянию.
Разница между двумя этими файлами в том, что в untitled-3 имена мувикам я задаю явно, а в untitled-2 имена задаются опираясь на переменную с именем начального мувика.
Проблема в том, что мувики нормально создаются опираясь на имя в переменной, но доступ к ним в WITH, опираясь на конструкцию типа NameMC.NameMC+"_SubMenu" не работает, а работает только если в WITH яно указать мувик but_mc.but_mc_SubMenu
так нет же объекта NameMC.NameMC+"_SubMenu"
пиши with (eval(NameMC+"."+NameMC+"_SubMenu"))
или with (this[NameMC][NameMC+"_SubMenu"])
sergwizard
12.03.2004, 19:14
Вот так, наверное.
Ну, в принципе, silin ответил уже.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.