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

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

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

Регистрация: Jan 2012
Сообщений: 2
По умолчанию Обращение к свойствам класса без инициализации

Всем добрый день столкнулся с такой проблемой на сцене имеется мувик к которому написан класс
сама сцена имеет свой класс в котором мне необходимо получить некоторые параметры из
класса который описывает мувиклип не применяя конструкцию.

Код AS3:
var opr:Sphere =new Sphere();
trace (opr.posX);
Так как при такой инициализации создаётся новый экземпляр и нужные мне параметры обнуляются

В архиве мини вариант проблемы.
Вложения
Тип файла: rar test.rar (5.5 Кб, 27 просмотров)

Старый 29.01.2012, 12:35
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 2  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
radlif, на форуме принято соблюдать правила русского языка. Если он для вас родной, применяйте знаки пунктуации.
__________________
Идите первым!

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

Регистрация: Nov 2010
Адрес: 48° 55'N 24° 42'E GMT +2:00
Сообщений: 399
Записей в блоге: 1
Код AS3:
package  {
	import flash.display.DisplayObject;
	import flash.display.Sprite;
	import Sphere;
 
	public class World extends Sprite {
		private var _opr:Sphere;
 
		public function World()  {
			sphere();
		}
 
		private function sphere():void {
			var len:uint = this.numChildren;
			for (var i:uint = 0; i < len; ++i) {
				var child:DisplayObject = this.getChildAt(i);
				if (child is Sphere) _opr = child as Sphere;
			}
			trace (_opr.posX, _opr.posY);
		}
	}
}
Добавлено через 4 минуты
Вариант подходит лиш для данного случая. Правда если кружку на сцене прописать [Instance name], то в коде можно не создавать переменную _opr:Sphere и в функции sphere() выбросить все кроме trace(). В trace() _opr заменить на прописаный <Instance name>


Последний раз редактировалось elder_Nosferatu; 29.01.2012 в 13:47.
Старый 29.01.2012, 17:44
ChuwY вне форума Посмотреть профиль Отправить личное сообщение для ChuwY Посетить домашнюю страницу ChuwY Найти все сообщения от ChuwY
  № 4  
Ответить с цитированием
ChuwY
 
Аватар для ChuwY

Регистрация: Nov 2009
Адрес: Тула / Москва
Сообщений: 734
Отправить сообщение для ChuwY с помощью ICQ Отправить сообщение для ChuwY с помощью Skype™
Можно задать мувику Instance name и получить его с помощью getChildByName
__________________
9 из 10 голосов в моей голове сказали наркотикам "НЕТ"
Мои ачивки: художник-паразит.

Старый 04.02.2012, 01:14
radlif вне форума Посмотреть профиль Отправить личное сообщение для radlif Найти все сообщения от radlif
  № 5  
Ответить с цитированием
radlif

Регистрация: Jan 2012
Сообщений: 2
С этим делом разобрался и сейчас проблема покруче)
Код AS3:
package
{
	import Box2D.Collision.Shapes.b2FilterData;
	import Box2D.Collision.Shapes.b2PolygonDef;
	import Box2D.Collision.Shapes.b2Shape;
	import Box2D.Common.Math.b2Vec2;
	import Box2D.Dynamics.b2Body;
	import Box2D.Dynamics.b2BodyDef;
	import flash.display.DisplayObject;
	import flash.display.DisplayObjectContainer;
	import flash.display.Sprite;
	import flash.geom.Point;
 
	/**
	 * ...
	 * @author
	 */
	public class ArbitraryActor extends Actor
	{
 
		static private var arbiBody:b2Body;
		private var arbiSprite:Sprite;
 
		public function ArbitraryActor(parent:DisplayObjectContainer, locataion:Point, bodyFrame:Array, image:DisplayObject = null)
		{
			//получить доступ/////////////////////////////
			var shapeDef:b2PolygonDef = new b2PolygonDef();
			var bodyDef:b2BodyDef = new b2BodyDef();
			///////////////////////////////////////////////
 
			arbiSprite = new Sprite();
			shapeDef.vertexCount = bodyFrame.length;
			arbiSprite.graphics.lineStyle(1, 0xF36325, 1);
			arbiSprite.graphics.beginFill(0x00ff00, 1);
 
			for (var i:Number = 0; i < bodyFrame.length; i++)
			{
				arbiSprite.graphics.lineTo(bodyFrame[i].x, bodyFrame[i].y);
				b2Vec2(shapeDef.vertices[i].Set(bodyFrame[i].x / PhysiVals.RATIO, bodyFrame[i].y / PhysiVals.RATIO));
			}
			arbiSprite.graphics.lineTo(bodyFrame[0].x, bodyFrame[0].y);
 
			if (image != null)
			{
				arbiSprite.graphics.clear();
				arbiSprite.addChild(image);
			}
			bodyDef.position.Set(locataion.x / PhysiVals.RATIO, locataion.y / PhysiVals.RATIO);
			arbiBody = PhysiVals.world.CreateBody(bodyDef);
			arbiBody.CreateShape(shapeDef);
			arbiBody.SetMassFromShapes();
			parent.addChild(arbiSprite);
			arbiSprite.x = locataion.x;
			arbiSprite.y = locataion.y;
			super(arbiBody, arbiSprite);
 
		}
 
		public function get silka():b2Body
		{
			return arbiBody;
		}
 
	}
 
}
Надо получить доступ к этим 2 классам
Код AS3:
var shapeDef:b2PolygonDef = new b2PolygonDef();
var bodyDef:b2BodyDef = new b2BodyDef();
из другого класса просто вынести их к общим переменным
не получается, доступ есть но значение вложенных
методов и свойств не изменяется.

То есть чтоб можно было сделать так:
Код AS3:
var wall1:ArbitraryActor = new ArbitraryActor(worldSprite, new Point(-10, -10),
[new Point(0, 0), new Point(1000, 0), new Point(1000, 10), new Point(0, 10)]);
 
wall1.	shapeDef.density=1;
//и так далее у этих классов свойств до фени
Добавлено через 13 минут
Желательно чтоб весь код был внутри это-го же класса

Старый 04.02.2012, 03:24
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 6  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Ээ а почему вы решили, что "значение вложенных методов и свойств не изменяется"? Наверное таки меняются, просто нужного эффекта нет. Т.к. эти классы, насколько я помню, после CreateBody и CreateShape уже не влияют на созданное тело. Вам таки наверное надо залазить в тело, которое ArbitraryActor.arbiBody и с ним что-то делать.
PS: на этом форуме часто крайне убедительно рекомендуют делать по принципу "одна тема - один вопрос". Гугол это тоже одобряет иногда)
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.


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

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

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


 


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


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