Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 29.01.2009, 15:07
_steF вне форума Посмотреть профиль Отправить личное сообщение для _steF Найти все сообщения от _steF
  № 1  
Ответить с цитированием
_steF

Регистрация: Jul 2006
Сообщений: 9
Question Свой attachMovie, нужен совет

Больно не пинайте...
Вот наваял свой attachMovie:
Код AS3:
function AttachMovie(Lincage:Object, NewName:String, At:Number, _Xx:Number, _Yy:Number, parentMc:Object):Object{
	var ChildMc:Object = Lincage;
	ChildMc.name = NewName;
	parentMc.addChild(ChildMc);
	ChildMc.x = _Xx;
	ChildMc.y = _Yy;
	return parentMc.getChildByName(NewName);
}
 
for(var i=0;i<5;i++){
	var mcItem:MovieClip = AttachMovie( new baseMс(), "ini_"+i, i, 10, i*60, this);
	mcItem.buttonMode = true;
	.........
}
Работает.
Чем опасен етот код?

Старый 29.01.2009, 15:18
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 2  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Код безумный.

Старый 29.01.2009, 15:25
mre вне форума Посмотреть профиль Отправить личное сообщение для mre Посетить домашнюю страницу mre Найти все сообщения от mre
  № 3  
Ответить с цитированием
mre
 
Аватар для mre

Регистрация: Jul 2007
Адрес: Москва
Сообщений: 996
А зачем возвращать через getChildByName?
Переменная At не используется и по-хорошему типа int должна быть.
Именование и типизация переменных оставляет желать лучшего.
Вместо Object используйте DisplayObject и DisplayObjectContainer.

Это для начала.
__________________
Griver

Старый 29.01.2009, 15:39
_steF вне форума Посмотреть профиль Отправить личное сообщение для _steF Найти все сообщения от _steF
  № 4  
Ответить с цитированием
_steF

Регистрация: Jul 2006
Сообщений: 9
Цитата:
Сообщение от __etc Посмотреть сообщение
Код безумный.


У меня в старом проэкте очень много используется attachMovie. Пытаюсь минимзировать кодинг.

Старый 29.01.2009, 15:56
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 5  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
У вас должно быть примерно так
Код AS3:
function attachMovie (linkage:DisplayObject, x:Number, y:Number, parentMc:DisplayObjectContainer):DisplayObject {
	linkage.x = x;
	linkage.y = y;
	parentMc.addChild (linkage);
	return linkage;
}
 
for (var i=0; i<5; i++){
	var mcItem:MovieClip = attachMovie (new baseMс (), 10, i * 60, this) as MovieClip;
	mcItem.buttonMode = true;
	.........
}
__________________
(и)Нильс.ru | Плагины для FlashDevelop


Последний раз редактировалось iNils; 29.01.2009 в 16:15.
Старый 29.01.2009, 16:12
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 6  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Можно так:
Код AS3:
function attachMovie (linkage:DisplayObject, x:Number, y:Number, parentMc:DisplayObjectContainer):DisplayObject {
	linkage.x = x;
	linkage.y = y;
	return parentMc.addChild(linkage);
}

Старый 29.01.2009, 16:51
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 7  
Ответить с цитированием
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
Код AS3:
function attachMovie(movie:DisplayObject, container:DisplayObjectContainer, init:Object = null):DisplayObject
{
        var result:DisplayObject = container.addChild(movie);
 
	if(init)
        {
		for(var propertyName:String in init)
                {
                        try
                        {
			        result[propertyName] = init[propertyName];
                        }
                        catch(e:Error)
                        {
                                trace('You Bloody Moron, there is no such property, motherfucker!');
                        }
                 }
        }	
	return result;
}
И вот еще тебе createEmptyDisplayObject
Код AS3:
function createEmptyDisplayObject(container:DisplayObjectContainer, generator:Class = null):DisplayObject
{
    if(generator == null)
        generator = flash.display.Sprite;
    return container.addChild(new generator());
}
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^


Последний раз редактировалось Nirth; 29.01.2009 в 16:59.
Старый 29.01.2009, 20:57
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 8  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
если уж дословно, то
Код AS3:
public function attachMovie(id:String, name:String, depth:Number, initObject:Object) : MovieClip 
{
	var res:MovieClip;
	var cl:Class = getDefinitionByName(id) as Class;
	try
	{
		res = MovieClip(this.addChildAt(new cl(), int(depth)));
                res.name = name;
		for ( var param:String in initObject)
		{
			res[param] = initObject[param];
		}
	}catch(err:Error){}
 
	return res;
}
бредовые затеи..
телТаржетов у вас в проекте не используется случаем ?, а то давайте и их сюда подтянем..


Последний раз редактировалось silin; 29.01.2009 в 21:00.
Старый 29.01.2009, 21:14
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 9  
Ответить с цитированием
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
Кстати, через Proxy можно еще и slash нотацию попробывать=)
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^

Старый 29.01.2009, 21:50
_steF вне форума Посмотреть профиль Отправить личное сообщение для _steF Найти все сообщения от _steF
  № 10  
Ответить с цитированием
_steF

Регистрация: Jul 2006
Сообщений: 9
Пасибо всем!!!!
Не одному мне помогли, я думаю ...

танкс

Создать новую тему Ответ Часовой пояс GMT +4, время: 03:29.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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