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

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

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

Регистрация: Apr 2011
Сообщений: 13
По умолчанию Вызов функции и возврат значения

Доброго времени суток. Я начинающий. Сразу извеняюсь за терминологию (если где что не так написал). Есть вот такой код- это упращенная версия исходного кода:
Главный класс. Здесь контейнеры в которые помещают изображения.

Код AS3:
package {
	import flash.display.Sprite;
	import flash.display.Stage;
 
	[SWF(width = "640", height = "480")]
 
	public class Main extends Sprite {
		public var contener:Sprite;
		public var contenerA:Sprite;
		public var contenerB:Sprite;
		public var a;
 
		public function Main() {
		contener = new Sprite;
		contenerA = new Sprite;
		contenerB = new Sprite;
		stage.frameRate = 24;
		addChild(contener);
 
		contener.addChild(contenerA);
		contener.addChild(contenerB);
 
		a = new A(this);	
		}
	}
 
}
Класс А. Здесь добавляется картинка в один из контейнеров и происходит отслеживания нажатия клавиши пробел.

Код AS3:
package {
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.KeyboardEvent;
	import flash.display.Bitmap;
	import flash.display.Stage;
 
	public class A extends Sprite {
		private var photo1:Bitmap;
		public var ss;
		[Embed(source='../photo1.png')] public var Photo1:Class;
		public var main:Main;
		private var space:Boolean;
 
	public function A (mamain) {
 
		main = mamain;
 
		photo1 = new Photo1;
		main.contenerA.addChild(photo1);
 
		main.stage.addEventListener(KeyboardEvent.KEY_DOWN,key_down);
		main.stage.addEventListener(KeyboardEvent.KEY_UP, key_up);
		addEventListener(Event.ENTER_FRAME, onEnterFrame);
 
 
	}
		function key_down(e:KeyboardEvent) {
			if (e.keyCode==32) {
			  space = true;
			}
	}
		function key_up(e:KeyboardEvent) {
			if (e.keyCode==32) {
			  space = false;
			}
	}
		function onEnterFrame(event:Event):void { 
			if (space == true) {
				ssss();
			}
		function ssss() {
			ss = new B(main);
		}
	     }
	}
}
Класс B.

Код AS3:
package {
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.KeyboardEvent;
	import flash.display.Bitmap;
	import flash.display.Stage;
 
	public class B extends Sprite {
		public var main;
		private var photo2:Bitmap;
		private var photo3:Bitmap;
		private var photoX;
		private var ccc;
		public var cc:C;
	[Embed(source='../photo2.png')]  public var Photo2:Class;
	[Embed(source='../photo3.png')]  public var Photo3:Class;
 
	public function B(mamain) {
 
		main = mamain;
		photo2 = new Photo2;
		photo3 = new Photo3;
 
		/*Здесь нужен вызов функции variantPhoto () из класса С, который вернет значение variant и присвоит его переменной ссс
		*/
		if (ccc==1) { photoX = photo2; }
		if (ccc == 2) { photoX = photo3; }
		photoX.x = 200;
		photoX.y = 300;
		main.contenerB.addChild(photoX);
 
	}
	}
 
}
По нажатию пробела в классе В добовляется на сцену еще какртинка, а вот какая - зависит от класса С. Вопрос как создать функцию (или метод ) которая вызовет класс С и вернет необходимое занчение???

Класс С.
Код AS3:
package  {
	import flash.events.Event;
	import flash.events.KeyboardEvent;
	import flash.display.Stage;
	import flash.display.Sprite;
 
 
	public class C extends Sprite {
		public var variant:Number;
		private var ors;
		public var main:Main;
 
		public function C (mamain) {
 
			main = mamain;
 
 
			main.stage.addEventListener(KeyboardEvent.KEY_DOWN,key_down);
 
		}
 
		private function key_down(e:KeyboardEvent) {
			if (e.keyCode == 49) {
			variant = 1;
			}
			if (e.keyCode == 50) {
			variant = 2;
			}
			if (e.keyCode == 51) {
			variant = 3;
			}
			if (e.keyCode == 52) {
			variant = 4;
			}	
		}
//значение variant нужно вернут в класс В
		private function variantPhoto() {
			return variant;
		}
 
	}
}
Мне очень хотелось разобраться в этом вопросе, особенно в плане параметров и аргументов метод и конструкторов. Заранее благодарен.

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

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

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


 


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


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