![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Mar 2010
Сообщений: 30
|
привет! есть код:
function createObj(){ function initObjFromLib(iName,iLib,iNew,xCoord,yCoord){ iName=attachMovie(iLib,iNew,_root.getNextHighestDepth()); iName._x=xCoord; iName._y=yCoord; } function initEmptyObj(iName,xCoord,yCoord){ _root.createEmptyMovieClip(iName,_root.getNextHighestDepth()); iName._x=xCoord; iName._y=yCoord; } initObjFromLib(buttonNext,"mc","smc",365,255); initObjFromLib(buttonBack,"mc","smc2",485,255); initEmptyObj(frameForShow,100,100); trace(buttonNext); } createObj(); почему так выходит? как сделать лучше, если я хочу сделать код более удобным, логичным, но не хочу заморачиваться с ООП на ас2? |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
А что такое buttonNext? И зачем вы функции в функцию позасовывали?
|
|
|||||
|
Регистрация: Mar 2010
Сообщений: 30
|
buttonNext - это предполагаться быть кнопкой.
от функции initObjFromLib я хочу создание мувиКлипа с заданными параметрами(как называется, объект из библиотеки, новое имя, икс, игрек) и последующим к нему обращением. а что функции нельзя объявлять в функции? Добавлено через 4 минуты я хотел что бы это: nextButton=attachMovie("mc","smc",_root.getNextHighestDepth()); nextButton._x=100; nextButton._y=100; function initObjFromLib(iName,iLib,iNew,xCoord,yCoord){ iName=attachMovie(iLib,iNew,_root.getNextHighestDepth()); iName._x=xCoord; iName._y=yCoord; } initObjFromLib(buttonNext,"mc","smc",365,255); да я помню, что могу обратиться к новому имени(attachMovie("mc","НОВОЕ_ИМЯ", _root.getNextHigestDepth()) ), но мне кажется, что логичнее обращаться к имени переменной(buttonNext) я опять велосипед изобретаю? Последний раз редактировалось Blackjack1616; 23.04.2010 в 22:04. |
|
|||||
|
Ого Вы жжёте.
MovieClip.attachMovie() Доступность Flash Player 5. Синтаксис my_mc.attachMovie(idName:String, newName:String, depth:Number [, initObject:Object]) : MovieClip Параметры idName Linkage name (имя для линковки) символа мувиклипа в Библиотеке, используемое для присоединения (attach) мувиклипа на Сцену. Это имя вводится в поле Identifier диалогового окна Linkage Properties. newname Уникальное имя присоединяемого мувиклипа. depth Число, определяющее глубину присоединяемого мувиклипа. initObject (поддерживается, начиная с Flash Player 6) Объект, содержащий свойства, передаваемые присоединенному мувиклипу. Это свойство позволяет динамически создавать мувиклипы, получающие параметры. Если initObject не объект, параметр игнорируется. Все свойства initObject копируются в только что созданный мувиклип. Свойства, определенные в initObject, доступны функции-конструктору. Этот параметр является необязательным. Возвращает Ссылку на созданный объект . Описание Метод; берет символ из Библиотеки и присоединяет (attach) к мувиклипу my_mc на Сцене. Используйте MovieClip.removeMovieClip() или MovieClip.unloadMovie() для удаления мувиклипа, присоединенного с помощью attachMovie(). Вы можете расширять методы и обработчики событий класса MovieClip, создавая его подклассы. Для более подробной информации смотри "Присвоение класса мувиклип-символу " в Использовании ActionScript во Flash. Пример В примере ниже присоединяет символ с linkage identifier “circle” к мувиклипу на Сцене: this.attachMovie("circle", "circle1_mc", this.getNextHighestDepth()); this.attachMovie("circle", "circle2_mc", this.getNextHighestDepth(), {_x:100, _y:100}); См. также MovieClip.removeMovieClip(), MovieClip.unloadMovie(), removeMovieClip() Т.е. в Вашем случае достаточно одной строки.
__________________
Играй. Это жизнь. Всё повторяется. Играй. |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Цитата:
function initObjFromLib(parent, iLib, iNew, xCoord, yCoord) { var iName = parent.attachMovie(iLib, iNew, parent.getNextHighestDepth()); iName._x = xCoord; iName._y = yCoord; return iName; } function initEmptyObj(parent, iName, xCoord, yCoord) { var mc = parent.createEmptyMovieClip(iName, parent.getNextHighestDepth()); mc._x = xCoord; mc._y = yCoord; return mc; } var buttonNext = initObjFromLib(_root, "mc", "smc", 365, 255); var buttonBack = initObjFromLib(_root, "mc", "smc2", 485, 255); var frameForShow = initEmptyObj(_root, "smc3", 100, 100); trace(buttonNext + " " + buttonBack + " " + frameForShow); |
|
|||||
|
Регистрация: Mar 2010
Сообщений: 30
|
я подумал. что было бы не плохо функции определенного типа, держать в одном месте.
Добавлено через 4 минуты Всем большое спасибо! Добавлено через 23 минуты ...но если я вдруг сделаю так: function initObjFromLib(iParent,iLib,iNew,xCoord,yCoord){ var iName; iName=attachMovie(iLib,iNew,iParent.getNextHighestDepth()); iName._x=xCoord; iName._y=yCoord; return iName; //trace(buttonNext); } function createObj(){ buttonNext = initObjFromLib(_root,"mc","smc",365,255); buttonBack = initObjFromLib(_root,"mc","smc3",465,255); trace("внутри: "+buttonNext); } function controlObj(){ buttonNext+=10; trace("Получиться?"); } trace("снаружи: "+buttonNext); createObj(); controlObj(); |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Цитата:
Цитата:
И у вас еще до создания объекта идет. Внимательнее как-то надо быть. Последний раз редактировалось udaaff; 23.04.2010 в 22:40. |
|
|||||
|
Регистрация: Mar 2010
Сообщений: 30
|
Цитата:
Цитата:
Цитата:
Последний раз редактировалось Blackjack1616; 23.04.2010 в 22:44. |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Не как локальная
Я уже исправил. Если бы var был, то локальной была бы. |
|
|||||
|
Регистрация: Mar 2010
Сообщений: 30
|
Блин! Все работает!
![]() И все по стопочкам лежит! большое-большое спасибо! ![]() |
![]() |
![]() |
Часовой пояс GMT +4, время: 16:47. |
|
|
« Предыдущая тема | Следующая тема » |
| Теги |
| function , undefined , область видемости |
|
|