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

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

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

блогер
Регистрация: Jan 2004
Адрес: D
Сообщений: 1,592
Записей в блоге: 2
По умолчанию как Спрайту указать на себя ?

к муви-клипу обращаются таким обоазом :
Код:
if (MovieClip(parent).rightArrow) {
newx += speed*timePassed/1000;
}
а если я использую Спрайт как мне обратится к нему к Спрайту ?


попробую дополнить вопрос
можно сделать таким образом :
Код:
package
{
    import flash.display.Sprite;
    import flash.display.Stage;
    import flash.events.MouseEvent;

    [SWF(width='500', height='400', backgroundColor='#669999', frameRate='21')]
/*____________________________________________________*/


    public class Ship extends Sprite
    {
        private var thisDraw: Sprite;
		
		
        public function Ship()
	{
            shipDraw();
        }

	
	private function shipDraw(): void
	{
            thisDraw = new Sprite;
			
            thisDraw.graphics.beginFill(0xFFFF00);
            thisDraw.graphics.drawCircle(0, 0, 40);
            thisDraw.graphics.endFill();
			
            addChild(thisDraw);
			
            thisDraw.x = stage.stageWidth / 2;
            thisDraw.y = stage.stageHeight / 2;
			
            thisDraw.buttonMode = true;
 
            thisDraw.addEventListener(MouseEvent.MOUSE_DOWN, onshipClick);  
        }
		
		
        public function onshipClick(event:MouseEvent): void
	{
            event.target.graphics.clear();
			
	    event.target.graphics.beginFill(0xFFFFFF);
	    event.target.graphics.drawCircle(0, 0, 40);
            event.target.graphics.endFill();
        }
    }
}
а как можно сделать тоже самое только в этой модели ?

Код:
package
{
    import flash.display.Sprite;
    import flash.display.Stage;
    import flash.events.MouseEvent;

    [SWF(width='500', height='400', backgroundColor='#669999', frameRate='21')]
/*____________________________________________________*/


    public class Ship extends Sprite
    {
        private var thisDraw: Sprite;
		
		
        public function Ship()
	{
            shipDraw();
        }

	
	private function shipDraw(): void
	{
            thisDraw = new Sprite;
			
            thisDraw.graphics.beginFill(0xFFFF00);
            thisDraw.graphics.drawCircle(0, 0, 40);
            thisDraw.graphics.endFill();
			
            addChild(thisDraw);
			
            thisDraw.x = stage.stageWidth / 2;
            thisDraw.y = stage.stageHeight / 2;
			
            thisDraw.buttonMode = true;
 
            thisDraw.addEventListener(MouseEvent.MOUSE_DOWN, onshipClick);  
        }
		
		
        public function onshipClick(event:MouseEvent): void
	{
            thisColor();
        }


        private function thisColor(): void
	{
            //...? 
	}
    }
}
__________________
Безвыходных положений небывает © Барон Мюнхаузен=)Исходники


Последний раз редактировалось D12; 26.07.2008 в 18:59. Причина: дополнение вопроса
Старый 26.07.2008, 19:21
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 2  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
передать аргументом никак?

вот это: MovieClip(parent) лучше заменить на parent as MovieClip

Старый 27.07.2008, 01:10
D12 вне форума Посмотреть профиль Отправить личное сообщение для D12 Найти все сообщения от D12
  № 3  
Ответить с цитированием
D12
меценат
 
Аватар для D12

блогер
Регистрация: Jan 2004
Адрес: D
Сообщений: 1,592
Записей в блоге: 2
Цитата:
вот это: MovieClip(parent) лучше заменить на parent as MovieClip
вообщето у меня Спрайт =) а это строчка к тому что хотелось бы узнать есть ли такое и для Спрайта

Цитата:
передать аргументом никак?
вообще то способ есть, забивать спрайт в временный массив и после через массив к нему ссылатся при этом очищая массив для будущего, жаль, мне казалось есть документированный метод для подобных случаев...
__________________
Безвыходных положений небывает © Барон Мюнхаузен=)Исходники


Последний раз редактировалось D12; 27.07.2008 в 01:13.
Старый 27.07.2008, 03:33
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 4  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
D12, причём сдесь Ваш тип? я говорю что у Вас приведение типа неверное.

из ваше кода Вам надо всего лишь:
Код:
       public function onshipClick(event:MouseEvent): void {
            thisColor( event.target as Sprite );
        }


        private function thisColor(target:Sprite): void {
            //...? 
	}

Старый 27.07.2008, 03:42
fljot вне форума Посмотреть профиль Отправить личное сообщение для fljot Найти все сообщения от fljot
  № 5  
Ответить с цитированием
fljot

блогер
Регистрация: Jul 2007
Сообщений: 940
Записей в блоге: 3
что-то вас не очень понятно. где связь первого вопроса и примера?
по первому вопросу - к спрайту точно так же. только заменить слова MovieClip на Sprite

по коду - передать аргументом конечно. хотя у вас заведено свойство класса со ссылкой на этот спрайт, так что можно просто брать и пользовать

upd: BlooDHounD написал уж

Старый 27.07.2008, 16:42
D12 вне форума Посмотреть профиль Отправить личное сообщение для D12 Найти все сообщения от D12
  № 6  
Ответить с цитированием
D12
меценат
 
Аватар для D12

блогер
Регистрация: Jan 2004
Адрес: D
Сообщений: 1,592
Записей в блоге: 2
Хмм... Спасибо, всё так просто
__________________
Безвыходных положений небывает © Барон Мюнхаузен=)Исходники

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

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

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


 


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


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