|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Mar 2010
Сообщений: 30
|
Порядок распложения фильмов и экземпляров в стеке
привет! есть код:
//--------- function createObjects(){//создаем объект iParent=contS; //контейнер пропал //iParent = _root; //зато так есть есть контейнер(см. ниже к чему это я) obj11=attachMovie("obj1","obj2",iParent.getNextHighestDepth()); obj11._x=200; obj11._y=200; trace(obj11); } function initObjects(){ createObjects(); } //--------- function createContainer(){//создаем контейнер cont=attachMovie("contL","contS",_root.getNextHighestDepth()); cont._x=100; cont._y=100; } function controlContainer(){//управление контейнером, двигаем его мышкой cont.onPress=function(){ this.onEnterFrame = function(){ this._x=_xmouse-(this._width/2); } } cont.onMouseUp=function(){ this.onEnterFrame = function(){ this._x=this._x; } } } function initConteiner(){ createContainer(); controlContainer(); } //--------- function begin(){ initConteiner(); initObjects(); } begin(); возможно ли, вообще поместить один мувик в другой, и что бы вновь помещенный мувик имел начало координат клипа куда его засунули, а не начало координат главной сцены? хотелось бы без всяких заморочек так сделать и при перетягивании "коробочки", объект который внутри был статичен по отношении к клипу в котором он находится. заранее извиняюсь, сложно описывать, очень устал. -------- container.swf - iParent = contS; container.swf(1) - iParent = _root; |
|
|||||
Регистрация: Mar 2010
Сообщений: 30
|
Почему? Я в этой "теме" не давно.
|
|
|||||
[+4 06.05.14]
|
Ну как вам объснить проще почему. Вот например вы не ходите через колбасный цех с пере=ходом в хлебный, а потом обратно потому что все таки колбасу купить хотели, а не хлеб. Вот и тут так же, одна функция запускает вторую в которой запуска.тся 2 других , а в свою очередь две других запускают основную часть. Так не то что запутаться можно, так можно столько ошибок нагородить.
Вот смотри как пишется более менее норм реализация function main ( a,b,c,d) { if(a==b && c!=d) { d = 20; } else { d= null } submain(d); } function submain(a) { a==null ? _root._visible = false : _root.mc._visible = true; subsubmain(mc._visible); } function subsubmain (a) { switch(a) { case 0: trace("struct"); break; case 1: trace("duck"); break; } } main(3,4,5,6) Я думаю разница понятна, и учитесь писать на классах, это систематизирует ваш код Последний раз редактировалось in4core; 10.07.2010 в 13:43. |
|
|||||
Регистрация: Mar 2010
Сообщений: 30
|
спасибо. буду с эти разбираться.
|
|
|||||
Регистрация: Nov 2008
Адрес: Атланта
Сообщений: 1,271
|
in4core что за ужастный код?
__________________
Пока я жив, Вы горем обеспечены |
|
|||||
Регистрация: Mar 2010
Сообщений: 30
|
Так, значит, хорошо!
А что по вопросу темы? читал в книжке Колина Мука - так я не совсем понял этот механизм, с этими стеками, вложенностями. я всегда делаю _root.getNextHighestDepth(), когда аттачу клип из библиотеки, но предполагаю, что можно делать как-то более организованно, как например в исходном коде одного из примеров на сайте http://www.metanetsoftware.com/technique.html/, но моего понимания не хватает для осознания этого механизма, да и языка не хватает. |
|
|||||
[+4 06.05.14]
|
Если я понял правильно вы хотите заатачить сначала клип на главную временную шкалу, а потом зааттачить второй клип, в тот, что зааттачили на главную линейку, при этом внутренний клип, будет статичным. Может быть написал немного наоборот, думаю разберетесь
var MC:MovieClip; var cont:MovieClip; var cx = 200; var cy = 200; function createObjects(a,b){ MC = _root.attachMovie("obj1","obj2",_root.getNextHighestDepth(),{_x:a,_y:b}); createContainer(cx/2,cy/2) } function createContainer(a,b){ cont = MC.attachMovie("contL","contS",MC.getNextHighestDepth(),{_x:a,_y:b}); controlContainer(); } function controlContainer(){ // плохо писать функцию в функции cont.onPress=function(){ this.onEnterFrame = function(){ this._x=_xmouse-(this._width/2); } } cont.onMouseUp=function(){ this.onEnterFrame = function(){ this._x=this._x; } } } createObjects(cx,cy); |
|
|||||
Регистрация: Mar 2010
Сообщений: 30
|
Цитата:
var MC:MovieClip; var cont:MovieClip; var cx = 50; var cy = 50; function createObjects(a,b){ MC = cont.attachMovie("obj1","obj2",cont.getNextHighestDepth(),{_x:a,_y:b}); } function createContainer(a,b){ cont = _root.attachMovie("contL","contS",_root.getNextHighestDepth(),{_x:a,_y:b}); createObjects(cx,cy); controlContainer(); } function controlContainer(){ // а что делать?... cont.onPress=function(){ this.onEnterFrame = function(){ this._x=_xmouse; } } cont.onMouseUp=function(){ this.onEnterFrame = function(){ this._x=this._x; } } } createContainer(cx,cy); trace(MC); trace(cont); Последний раз редактировалось Blackjack1616; 11.07.2010 в 14:52. |
Часовой пояс GMT +4, время: 05:22. |
|
« Предыдущая тема | Следующая тема » |
Теги |
вложенность , контейнер , порядок расположения |
|
|