![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Nov 2009
Сообщений: 300
|
У меня есть класс для движения объектов, и много объектов этого класса.
Нужно передать в конструктор класса, свойства, чтобы объекты двигались с разной скоростью. В коде это выглядело бы так: Так вот, можно ли в окне linkagе передать этот параметр (myVar), классу? Надеюсь понятно изложил ![]() Последний раз редактировалось saikspaik; 24.04.2010 в 03:39. Причина: уточнение |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Если речь идет о linkage, значит объект является мувиклипом, а мувиклипы в AS1.0/2.0 не создаются при помощи оператора new.
В attachMovie() можно передавать объект для инициализации. |
|
|||||
|
Регистрация: Nov 2009
Сообщений: 300
|
Спасибо.
А в AS 3.0 дела обстоят иначе? Про attachMovie() знаю, но он не подходит. Нужно чтобы на момент приаттачивания переменная уже уже была передана. Из вариантов в голову приходит только создания общего класса и нескольких дочерних, которые полностью наследуют родителя, только меняют переменную скорости. |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Цитата:
Цитата:
|
|
|||||
|
Регистрация: Nov 2009
Сообщений: 300
|
Недопонял. В AS 3.0 в linkage тоже нельзя передать параметры?
И про attachMovie() тоже не ясно. Конструктор примерно такой: Мне нужно передать этот someVar |
|
|||||
|
Вот так надо
Main package { import controls.ObjectControl; import flash.display.Sprite; public class Main extends Sprite { //CONSTRUCTOR public function Main() { init(); } private function init():void { var object1:ObjectControl = new ObjectControl(10); addChild(object1); //Object2 var object2:ObjectControl = new ObjectControl(5); addChild(object2); object2.y = object1.height+10; //Object3 var object3:ObjectControl = new ObjectControl(1); addChild(object3); object3.y = object1.height + object2.y+10; } }//class }//package Box(objects) package components { import flash.display.Sprite; public class Box extends Sprite { //CONSTRUCTOR public function Box() { init(); } private function init():void { var sBox:Sprite = new Sprite(); sBox.graphics.beginFill(0x000000); sBox.graphics.drawRect(0, 0, 30, 30); sBox.graphics.endFill(); addChild(sBox); } }//class }//package ObjectControl package controls { import components.Box; import flash.display.Sprite; import flash.events.Event; public class ObjectControl extends Sprite { private var aBox:Box; private var bBox:Box; private var sBox:Sprite; private var speedBox:uint; //CONSTRUCTOR public function ObjectControl(value:uint) { speedBox = value init(speedBox); } private function init(speedBox:uint):void { sBox = new Sprite(); addChild(sBox); aBox = new Box(); sBox.addChild(aBox) addEventListener(Event.ENTER_FRAME, actionObject) } private function actionObject(e:Event):void { sBox.x += speedBox; } }//class }//package //var object1:ObjectControl = new ObjectControl(здесь параметр который ты передаешь); И посмотри ещё один мой пример http://www.flasher.ru/forum/showthre...=138682&page=2 (пост №15) думаю тебе будет полезен. |
|
|||||
|
Регистрация: Nov 2009
Сообщений: 300
|
Спасибо, но это тоже не подойдет.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 16:05. |
|
|
« Предыдущая тема | Следующая тема » |
|
|