Придача данных as 3
|
|
Rollcage | Дата: Пятница, 21 Октября 2011, 19:05 | Сообщение # 1 |
участник
Сейчас нет на сайте
| Помогите, пожалуйста, в решение вопроса. Мне нужно передать координаты MovieClip из одного класса в другой. Так что бы другой MovieClip мог использовать его координаты. Подскажите, пожалуйста, как это можно реализовать.
|
|
| |
noTformaT | Дата: Пятница, 21 Октября 2011, 19:27 | Сообщение # 2 |
Ukrainian independent game developer
Сейчас нет на сайте
| мммм, а в чем проблема, если тебе известен клип, то тебе известны и его координаты х и у?
@noTformaT
|
|
| |
Rollcage | Дата: Пятница, 21 Октября 2011, 19:41 | Сообщение # 3 |
участник
Сейчас нет на сайте
| Нужен пример, как это реализовать. То как делаю это я, и у меня не получается, выложу позже. Так как сейчас за другим компом.
|
|
| |
Rollcage | Дата: Пятница, 21 Октября 2011, 21:31 | Сообщение # 4 |
участник
Сейчас нет на сайте
| Вот как делаю я: Есть два класса Bot и Nacel они оба принадлежат MovieClip. Мне нужно сделать так что бы координаты x и y мувика Nacel стали такими же как у Bot. Я пытался уже многими способами, но нечего не выходит. В классе Nacel я прописал функцию Code … public function peredachaXY(peremenayaX: Number, peremenayaY: Number): Number { x = peremenayaX; y = peremenayaY; return x, y; } …
В Bot не пойму как вызвать данную функцию так что бы засылать в неё координаты Бота.
Ещё один вариант. В нацел создаю Code public var MestoRaspoloj= new Bot;
…
public function init():void { mesto=MestoRaspoloj.NacelX; }
… public function init2() { x = mesto; y = 50; trace (MestoRaspoloj.NacelX + " mestoX")
} … в Бот
Code public var NacelX:Number= x;
Восстанавливал код по памяти так что мог где то ошибиться но выглядит примерно так.
Подскажите какой ни будь другой способ более правильный. Так как эти какие то не жизнеспособные.
|
|
| |
noTformaT | Дата: Пятница, 21 Октября 2011, 21:36 | Сообщение # 5 |
Ukrainian independent game developer
Сейчас нет на сайте
| если у тебя есть переменная например bot класса Bot var bot:Bot = new Bot(); и переменая nacel, класса Nacel. var nacel:Nacel = new Nacel(); то что тебе мешает сделать так??: bot.x = nacel.x; bot.y = nacel.y;
@noTformaT
|
|
| |
Rollcage | Дата: Пятница, 21 Октября 2011, 23:11 | Сообщение # 6 |
участник
Сейчас нет на сайте
| Спасибо за ответ, но наверное я что то делаю всё же не так как бы я не пробовал выдаёт ошибку 1120 “Обращение не существующего свойства nacel” “Обращение не существующего свойства bot”. Код: В классе Bot: Code ... public var bot:Bot= new Bot(); ... В класе Nacel: Code ... public var nacel:Nacel= new Nacel(); nacel.x = bot.x; ...
|
|
| |
Zizilk | Дата: Пятница, 21 Октября 2011, 23:14 | Сообщение # 7 |
постоянный участник
Сейчас нет на сайте
| Если используешь Adobe Flash pro, и оба мувиклипа уже на сцене и у них есть имена(у самих истансов). то public var bot:Bot= new Bot(); и public var nacel:Nacel= new Nacel(); опускаешь.
Если нет, на сцене и хочешь создать их динамически, то сначала надо отэкспортить мувиклипы в АС3. Но тут как я понял это не надо
|
|
| |
Rollcage | Дата: Суббота, 22 Октября 2011, 10:49 | Сообщение # 8 |
участник
Сейчас нет на сайте
| Подскажите, пожалуйста, а то я не пойму, почему оно не работает и выдаёт эти ошибки. Вот полный код: Класс Bot Code package { import flash.display.Sprite; import flash.events.Event; public class Bot extends Sprite { ublic var nacel:Nacel= new Nacel(); public function Bot() { } }
}
Класс Nacel Code package { import flash.display.Sprite; import flash.events.Event; public class Nacel extends Sprite { public var bot:Bot= new Bot(); nacel.x = bot.x; public function Nacel() { } } }
|
|
| |
ezheka | Дата: Суббота, 22 Октября 2011, 11:16 | Сообщение # 9 |
почетный гость
Сейчас нет на сайте
| bot и nacel на сцене? Им должны быть прописаны имена в свойствах. Потом добавляешь код
Code package { import flash.display.Sprite; import flash.events.Event; public class main extends MovieClip {
public function main() { nacel.x = bot.x; } } }
текущее
Сообщение отредактировал ezheka - Суббота, 22 Октября 2011, 11:49 |
|
| |
Rollcage | Дата: Суббота, 22 Октября 2011, 11:34 | Сообщение # 10 |
участник
Сейчас нет на сайте
| Нет не на сцене, но они выводятся при помощи addChild в другом классе. А может кто-то выложит наглядный пример, исходник?
|
|
| |
Кластер | Дата: Суббота, 22 Октября 2011, 12:30 | Сообщение # 11 |
постоянный участник
Сейчас нет на сайте
| Я бы выложил. Но я не как не пойму, что хочет ТС. noTformaT, и так уже сказал, что передать переменные легчё лекого путём * mvclip1.x = mvclip2.x * , тоже самое с width и height .
Просто ТС без обид, но я не пойму что ты хочешь
Вообщем тебе нужен основной класс, в котором будут созданы 2 дополнительных класса Бот и Насел, и далее в нём уже управлять ими. При этому у тебя будет 2 пакета Бот - Насел , и основной пакет для вывода информации на экран и управлениями теми 2-я классами
Code package { import flash.display.Sprite; import flash.events.Event; import адрес Nacel; import адрес Bot; public class Main extends Sprite { public var nacel:Nacel= new Nacel(); public var bot:Bot= new Bot(); public function Main():void { if (stage) init(); } private function init(e:Event = null):void { bot.x = nacel.x; bot.y = nacel.y; } } }
Ещё все 3 файла AS кода,должны находится в одной папке ! Если используете разные папки, то надо в import прописать адрес нахождения класса Bot и Nacel
И ошибку, то что не может найти тот, или иной класс, связана с тем, что ты не прописал в import адрес каждого класса. В принципе можно создать оба класса внутри 2-х этих. Но главное прописать путь, к одному и к другому.
Сообщение отредактировал Кластер - Суббота, 22 Октября 2011, 13:33 |
|
| |
ек0н | Дата: Суббота, 22 Октября 2011, 13:42 | Сообщение # 12 |
участник
Сейчас нет на сайте
| Как я понял, ТС нужно что-то вроде реестра: http://www.photonstorm.com/archive....ructure (Возможно, придется ввести капчу, чтоб пройти по ссылке)
Если коротко, то создаешь класс, допустим, Registry, в нем создаешь статические переменные bot:Bot и nacel:Nacel. В основном классе, при создании этих объектов, присваиваешь переменным класса Registry только что созданные копии объектов (bot = new Bot(); Registry.bot = bot;) и теперь можешь из любого класса обращаться к боту через Registry.bot
|
|
| |
Rollcage | Дата: Воскресенье, 23 Октября 2011, 11:50 | Сообщение # 13 |
участник
Сейчас нет на сайте
| Quote (Кластер) import адрес Nacel; import адрес Bot; А как прописать адрес если Клас у меня, например находится J:/Proect/Proverka А сам флеш в C:/ProgramFile/… Подскажите пожалуйста.
|
|
| |
noTformaT | Дата: Воскресенье, 23 Октября 2011, 12:43 | Сообщение # 14 |
Ukrainian independent game developer
Сейчас нет на сайте
| Quote (Rollcage) А как прописать адрес если Клас у меня, например находится J:/Proect/Proverka А сам флеш в C:/ProgramFile/… Подскажите пожалуйста. ты в чем пишешь именно?
@noTformaT
|
|
| |
Rollcage | Дата: Воскресенье, 23 Октября 2011, 23:48 | Сообщение # 15 |
участник
Сейчас нет на сайте
| Quote (noTformaT) ты в чем пишешь именно? adobe flash professional cs 5.5 я имею в виду как этот адрес будет выглядеть...
|
|
| |
noTformaT | Дата: Воскресенье, 23 Октября 2011, 23:52 | Сообщение # 16 |
Ukrainian independent game developer
Сейчас нет на сайте
| Quote (Rollcage) я имею в виду как этот адрес будет выглядеть... ну если этот ас3 класс находится в той же папке что и фла файл, то просто import имя_клаcса; в основном все классы находиться в дочерних или в самой папке с фла файлом. Например есть папка src, в ней fla файл game.fla, и папка my_classes, а в папке my_classes находиться класс myclass.as, тогда импорт этого класса будет такой: import my_classes.myclass;
@noTformaT
|
|
| |
Rollcage | Дата: Понедельник, 24 Октября 2011, 17:52 | Сообщение # 17 |
участник
Сейчас нет на сайте
| Вот исходник http://zalil.ru/31925104 я хочу передать координату x и y от Bot к Nacel
|
|
| |