![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jan 2012
Сообщений: 2
|
Всем добрый день столкнулся с такой проблемой на сцене имеется мувик к которому написан класс
сама сцена имеет свой класс в котором мне необходимо получить некоторые параметры из класса который описывает мувиклип не применяя конструкцию. Так как при такой инициализации создаётся новый экземпляр и нужные мне параметры обнуляются ![]() В архиве мини вариант проблемы. |
|
|||||
|
Модрон-ветеринар
|
radlif, на форуме принято соблюдать правила русского языка. Если он для вас родной, применяйте знаки пунктуации.
__________________
Идите первым! |
|
|||||
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); } } } Вариант подходит лиш для данного случая. Правда если кружку на сцене прописать [Instance name], то в коде можно не создавать переменную _opr:Sphere и в функции sphere() выбросить все кроме trace(). В trace() _opr заменить на прописаный <Instance name> Последний раз редактировалось elder_Nosferatu; 29.01.2012 в 13:47. |
|
|||||
|
Можно задать мувику Instance name и получить его с помощью getChildByName
__________________
9 из 10 голосов в моей голове сказали наркотикам "НЕТ" Мои ачивки: художник-паразит. |
|
|||||
|
Регистрация: Jan 2012
Сообщений: 2
|
С этим делом разобрался и сейчас проблема покруче)
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; } } } из другого класса просто вынести их к общим переменным не получается, доступ есть но значение вложенных методов и свойств не изменяется. То есть чтоб можно было сделать так: 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; //и так далее у этих классов свойств до фени Желательно чтоб весь код был внутри это-го же класса ![]() |
|
|||||
|
блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
|
Ээ а почему вы решили, что "значение вложенных методов и свойств не изменяется"? Наверное таки меняются, просто нужного эффекта нет. Т.к. эти классы, насколько я помню, после CreateBody и CreateShape уже не влияют на созданное тело. Вам таки наверное надо залазить в тело, которое ArbitraryActor.arbiBody и с ним что-то делать.
PS: на этом форуме часто крайне убедительно рекомендуют делать по принципу "одна тема - один вопрос". Гугол это тоже одобряет иногда)
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают. Последний раз редактировалось -De-; 04.02.2012 в 03:27. |
![]() |
![]() |
Часовой пояс GMT +4, время: 03:53. |
|
|
« Предыдущая тема | Следующая тема » |
|
|