ПРОСТОЙ ВОПРОС - ОТВЕТ (только Flash)

То что касается флеша, но не касается ВКонтакте API. Например проблемы при создании прыгающего мячика.
Аватара пользователя
bodnar
Модератор
Модератор
Сообщения: 1399
Зарегистрирован: 03 апр 2010, 06:41

Re: ПРОСТОЙ ВОПРОС - ОТВЕТ (только Flash)

Сообщение bodnar »

колина мука в сети полным полно, ищите лучше
$$$
Сообщения: 1
Зарегистрирован: 18 окт 2012, 16:35

Re: ПРОСТОЙ ВОПРОС - ОТВЕТ (только Flash)

Сообщение $$$ »

MovieClip.(score).txt_score.text=scoreArr[c];
не могу вывести в динамическом поле в клипе, почему?
не могу найти инфу как правильно сделать.
pG0t
Сообщения: 2
Зарегистрирован: 30 окт 2012, 01:42

Re: ПРОСТОЙ ВОПРОС - ОТВЕТ (только Flash)

Сообщение pG0t »

Как сделать чтобы созданный объект не выходил за границу !другого созданного! объекта?
Есть созданный Куб и созданная рамка (оба MovieClip).

При таком коде всё работает, при условии что Регистрация/ключевая точка координат выбрана верхних граней/пикселей (надеюсь меня поймут, не знаю как еще объяснить).

Код: Выделить всё

up.addEventListener(MouseEvent.CLICK, upF);function upF (e:MouseEvent):void {    kub.y -= 4;    if (kub.y < ramka.y) {        mc.y += 4;    }}
НО если опускать Куб в низ, то он вылезет за Рамку целиком (т.к. Регистрация верхняя. По центру конечно же результат тоже не удовлетворяет). Как быть?
pG0t
Сообщения: 2
Зарегистрирован: 30 окт 2012, 01:42

Re: ПРОСТОЙ ВОПРОС - ОТВЕТ (только Flash)

Сообщение pG0t »

pG0t писал(а):Как сделать чтобы созданный объект не выходил за границу !другого созданного! объекта?
Есть созданный Куб и созданная рамка (оба MovieClip).

При таком коде всё работает, при условии что Регистрация/ключевая точка координат выбрана верхних граней/пикселей (надеюсь меня поймут, не знаю как еще объяснить).

Код: Выделить всё

up.addEventListener(MouseEvent.CLICK, upF);function upF (e:MouseEvent):void {    kub.y -= 4;    if (kub.y < ramka.y) {        mc.y += 4;    }}
НО если опускать Куб в низ, то он вылезет за Рамку целиком (т.к. Регистрация верхняя. По центру конечно же результат тоже не удовлетворяет). Как быть?
Только что заметил ошибку в коде. На самом деле переменная "mc", а "kub" использовалась для примера (чтобы было хоть как-то понятнее). Вот верный "пример" кода.

Код: Выделить всё

up.addEventListener(MouseEvent.CLICK, upF);function upF (e:MouseEvent):void {    kub.y -= 4;    if (kub.y < ramka.y) {        kub.y += 4;    }}
Честно говоря очень жду ответа "bodnar'a". Даже не знаю как быть в этой ситуации. Будь это паскаль или Бэйсик где рисуешь куб 4-мя контрольными точками (Верхний левый/правый, Нижний левый/правый), было бы намного проще. Возможно в AS можно так же, но я этого не знаю/не нашел. Возможно это делается как-то иначе? Тогда как?
sanych_dv
Разработчик
Разработчик
Сообщения: 550
Зарегистрирован: 29 апр 2011, 01:52

Re: ПРОСТОЙ ВОПРОС - ОТВЕТ (только Flash)

Сообщение sanych_dv »

Код: Выделить всё

 package{    import flash.display.MovieClip;    import flash.display.Sprite;    import flash.events.Event;    import flash.events.MouseEvent;    import flash.geom.Rectangle;        public class Main extends Sprite    {        private var mc1:MovieClip;        private var mc:MovieClip;                public function Main():void        {            stage ? init() : addEventListener(Event.ADDED_TO_STAGE, init);        }                private function init(e:Event = null):void        {            removeEventListener(Event.ADDED_TO_STAGE, init);                        mc = new MovieClip;            mc.graphics.beginFill(0xFFFF00, 1);            mc.graphics.drawRect(0, 0, 200, 200);            mc.graphics.endFill();            mc.x = stage.stageWidth / 2;            mc.y = stage.stageHeight / 2;            addChild(mc);                        mc1 = new MovieClip;            mc1.graphics.beginFill(0xFF0000, 1);            mc1.graphics.drawEllipse(0, 0, 100, 60);            mc1.graphics.endFill();            mc1.x = stage.stageWidth / 2;            mc1.y = stage.stageHeight / 2;            addChild(mc1);                        stage.addEventListener(MouseEvent.CLICK, onClick);                }                private function onClick(e:MouseEvent):void        {                        mc1.x = mouseX;            mc1.y = mouseY;                        var rect:Rectangle = new Rectangle(mc.x, mc.y, mc.x + mc.width - mc1.width, mc.y + mc.height - mc1.height);                        mc1.x < rect.x ? mc1.x = rect.x : null;            mc1.x > rect.width ? mc1.x = rect.width : null;            mc1.y < rect.y ? mc1.y = rect.y : null;            mc1.y > rect.height ? mc1.y = rect.height : null;                }        } } 
XELAD
Сообщения: 205
Зарегистрирован: 17 июл 2012, 05:25

Re: ПРОСТОЙ ВОПРОС - ОТВЕТ (только Flash)

Сообщение XELAD »

Здравствуйте. Подскажите пожалуйста.
Пишу скрипт, сейчас в нем 9к строк, поднадоело их прокручивать, да сворачивать все функции заново, если в CS5 случится баг.
Есть ли способ разделить код на две и более части, да так, чтобы функции в доп. скриптах как будто были просто дописаны к основному?
То есть я знаю, что есть
import someAS; new someAS();
но всегда пользовался этим как внедрением других классов. А тут нужно чтобы "кусок" скрипта (я подразумеваю функции в классе основного скрипта) был перенесен в другой, дополнительный скрипт.
Спасибо!
sanych_dv
Разработчик
Разработчик
Сообщения: 550
Зарегистрирован: 29 апр 2011, 01:52

Re: ПРОСТОЙ ВОПРОС - ОТВЕТ (только Flash)

Сообщение sanych_dv »

1. Подразумевается, что в AS3 весь код вынесен в классы. Боитесь потерять медиабиблиотеку в исходниках .fla - экспортируйте их в .swc
2. Пользуете код во фреймах - пользуйте на свой страх, риск и безграмотность.
3. В AS3 не предполагается исполнение динамического кода "на лету", но
4. Существуют сторонние библиотеки, которые эмулируют с теми или иными ограничениями метод eval:
D.eval: http://danielmclaren.com/2008/10/25/usi ... -flash-cs3
AS3 Eval Library at Hurlant: http://danielmclaren.com/node/113

В качестве интереса можно с ними поработать (но не более того:))
XELAD
Сообщения: 205
Зарегистрирован: 17 июл 2012, 05:25

Re: ПРОСТОЙ ВОПРОС - ОТВЕТ (только Flash)

Сообщение XELAD »

sanych_dv
Код во фреймах вообще не использую, сразу как перешел на AS3. Не приходилось использовать, но к примеру super() и extends не помогут в моём случае?
К примеру:
 

Код: Выделить всё

package{import flash.display.MovieClip;public class MyActs extends MovieClip {private function func1(){}private function func2(){}}}
И тут я хочу выделить func2 в отдельный доп. скрипт, к примеру таким образом:
 

Код: Выделить всё

package{public class DopActs extends MyActs {private function func2(){}}}
Верен ли код? Будет ли эта private func2 работать в основном классе MyActs , если я включу в него строки

Код: Выделить всё

import DopActs;new DopActs;
Нужно ли в DopActs снова экспортировать классы, уже экспортированные в MyActs ?
Спасибо за помощь!
Alazaur
Разработчик
Разработчик
Сообщения: 1001
Зарегистрирован: 16 окт 2011, 20:25

Re: ПРОСТОЙ ВОПРОС - ОТВЕТ (только Flash)

Сообщение Alazaur »

XELAD, ребенок наследует от родителя, а не наоборот ;) ребенок унаследует и сможет использовать только public, protected и internal (если ребенок в том же пакете) методы родительского класса. Например:
MyClass:

Код: Выделить всё

package {    public class MyClass     {        public function MyClass():void         {                    }                protected function parentFunc():void         {            trace("Parent output");        }    }}
ChildMyClass:

Код: Выделить всё

package {    public class ChildMyClass extends MyClass     {        public function ChildMyClass():void         {            childFunc();            parentFunc();            //Все OK будут выполнены обе функции        }                public function childFunc():void         {            trace("Child Output");        }    }}
Импорты конечно не наследуются. Да и использовать наследование для того что-бы разделить код это мягко скажем не айс :D Впредь если проект большой заранее продумывайте иерархию, чтобы такого не получилось :)
gpv123
Сообщения: 346
Зарегистрирован: 29 янв 2012, 20:57

Re: ПРОСТОЙ ВОПРОС - ОТВЕТ (только Flash)

Сообщение gpv123 »

Да вроде include позволяет вытащить кусок кода в отдельный файл
Ответить