Macromedia Flash 5. Объектно - ориентированное программирование



Массив аргументов (Agruments array) - часть 2


// поставим отчество после фамилии и имени function setName( family, given ) { this.familyName = family; this.givenName = given; if (arguments[2] <> null) { this.middleName = new Array(); for( var i = 2; i < arguments.length; i++) { this.middleName[i-2] = arguments[i]; } } } person0 = new setName( "Robin", "Sean", "Debreuil" ); person3 = new setName( "Debreuil", "Summer" ); person4 = new setName( "Debreuil", "Jean", "Pierre", "Josheph" ); person5 = new setName( "Debreuil", "Gaston", "Bernard", "Josheph", "Rene", "d'Lac", "au'Fontaine", "Baguette" );

trace( person5.middleName.toString() ); // возврат будет выглядеть так: // Bernard, Josheph, Rene, d'Lac, au'Fontaine, Baguette

Если ваш setName остаётся вообще без аргументов, то можно прикупить их или покопаться в Monty Python, кстати, не забудьте взять чек. Если вы думаете, что проблема уже решена, то вспомните об именах китайцев. У них последовательность такова: фамилия, имя, имя. Наверное, в этом случае вам придётся разрешить пробелы в именах (обычно они пишутся в кодировке Unicode, которую Flash 5 не поддерживает). Ну а как быть, например, с "артистом, которого звали 'Принц'"? Нравится он вам или нет, но как не восторгаться огромным списком таких имён во всех базах данных мира! Интересно, придуман ли для этого уже новый символ в Unicode?

Ну хорошо, а как обстоит дело с Flash? Какова альтернатива? Вот вы создаёте новый символ в библиотеке, передаёте ему аргументы, например, _x, _y и _level в зависимости от того, куда вы его помещаете. Такие параметры, как _xScale не установлены (и получают значения по умолчанию, в нашем случае - '100'). Однако, если дублировать экземпляр символа, то вся информация экземпляра передаётся новому экземпляру, как будто вы передаёте одну и ту же функцию (createInstanceOfSymbol) и нескольким аргументам, число которых будет зависеть от того, как именно вы решили всё это построить.




  • Содержание  Назад  Вперед