Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Воздействие методов класса на объекты в Main (http://www.flasher.ru/forum/showthread.php?t=207723)

ZackMercury 04.05.2014 00:23

Не позорьтесь. Где у вас функция возвращает кнопку?

2misha 04.05.2014 00:25

В классе ...

Но что именно на это заменить я не понял. Какие строки.

ZackMercury 04.05.2014 00:29

...
Функция возвращает кнопку после оператора return, в функции addButton.
Или вы издеваетесь, или для вас программирование оказывается слишком сложным...
Ну или у вас слишком мало опыта. Даже не знаю.
В таком случае ГО уже читать Мука и не суйтесь в эти дела пока не научились правильно это делать.

2misha 04.05.2014 14:55

А, все, понял. Извините, что затупил. Кнопка сама теперь отображается, когда я просто её на экран вывожу, но когда задаю слушатель события и функцию, которую он запускает, все равно text1 оно не видит.

Код AS3:

package {
        /**
        * ...
        * @author Scorpion
        */

        import flash.events.*;
        import flash.display.*;
        import flash.text.*;
        import myClasses.*;
 
        public class Main extends Sprite
        {
                public function Main()
                {
                        if (stage)
                        init();
                        else
                        addEventListener(Event.ADDED_TO_STAGE, init);
                }
 
                private function init(): void
                {
                        addChild(Image.addImage(0, 0, "background"));
                        addChild(Image.addImage(0, 0, "head"));
                        addChild(Image.addImage(0, 200, "menuline"));
 
                        var text1: TextF = new TextF;
                        addChild(text1.addText("Text", 100, 200));
 
                        var button: Button = new Button;
                        addChild(button.addButton(200, 200));
                        button.addEventListener(MouseEvent.CLICK, funButton);                       
                }
 
                private function funButton(): void
                {
                        text1.text = "Hello";
                }
        }
}

Код AS3:

package myClasses
{
        /**
        * ...
        * @author Scorpion
        */

        import flash.display.*;
        import flash.events.*;
 
        public class Button extends Sprite
        {
                [Embed(source="Z:/home/test1.ru/www/img/but.png")] private static const Embed: Class;
 
                public function addButton(x: int, y: int): Sprite
                {
                        var button: Bitmap;
 
                        button = new Embed();
 
                        button.x = x;
                        button.y = y;
 
                        var sprite: Sprite = new Sprite();
                        sprite.addChild(button);
 
                        return sprite;
                }
        }
}


ZackMercury 04.05.2014 15:13

Цитата:

Код AS3:

package myClasses
{
        /**
        * ...
        * @author Scorpion
        */

        import flash.display.*;
        import flash.events.*;
 
        public class Button extends Sprite
        {
                [Embed(source="Z:/home/test1.ru/www/img/but.png")] private static const Embed: Class;
 
                public function addButton(x: int, y: int): Sprite
                {
                        var button: Bitmap;
 
                        button = new Embed();
 
                        button.x = x;
                        button.y = y;
 
                        var sprite: Sprite = new Sprite();
                        sprite.addChild(button);
 
                        return sprite;
                }
        }
}


А зачем вам создавать екземпляр класса, в котором даже ничего не рисуется?
Сделайте статический метод и уберите расширение Sprite.

Добавлено через 1 минуту
А, точно... Вы же не знаете, что такое статический метод ...

2misha 04.05.2014 15:21

А что там рисоваться то должно? Я думаю, свойства спрайта мне пригодятся по мере расширения функционала. Меня больше волнует, почему не хочет меняться значения text1 после нажатия кнопки ... вернее даже не запускается прога, когда я такое запрограммировать пытаюсь.

ZackMercury 04.05.2014 15:49

Если вы хотели сделать класс кнопки, а не фабрику кнопок, то вы сделали нечто не то, в итоге получился какой-то непонятный с ненужными вещами код, который показывает, что у вас в голове каша.

Я вас уже 4 раза отправлял читать Мука и не возвращаться, почему вы не хотите взять, сесть и прочитать обо всём, что вы сейчас делаете и не имеете представления, что именно вы делаете?

2misha 04.05.2014 16:02

Да мне проект надо делать, сроки поджимают. Я был создал основу сайта в Adobe Flash CS6 в кадрах, теперь надо как можно быстрее переделать все это в классах.

ZackMercury 04.05.2014 16:31

Если вы планируете в будущем с ним ещё работать, то не советовал бы сейчас вам писать какой-либо код для проекта.

2misha 04.05.2014 16:35

Ну так я по ходу создания проекта и планирую язык освоить. Так быстрее будет.

Добавлено через 22 минуты
Лучше скажите как с той кнопкой разобраться, чтоб я по аналогии мог другие кнопки делать, а вкапываться в суть буду позже.


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

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