Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Передача параметров через объект в другой класс. (http://www.flasher.ru/forum/showthread.php?t=166341)

stweet 02.09.2011 01:27

Передача параметров через объект в другой класс.
 
Код AS3:

 
// пример:
 
// есть простенький класс, объект.
 
public class MyClass
{
        public function MyClass (args:MyStyle)
        {
                // ...
        }
}
 
// есть к нему стили
 
public class MyStyle
{
        static public function BLACK(fName:String):Object
        {
                var _BLACK:Object = { };
                    _BLACK.fName = fName;
 
                return _BLACK;
        }
}
// что пытаюсь сделать я:
 
public class Main extends Sprite
{
        public function Main():void
        {
                var myClass:MyClass = new MyClass (MyStyle.BLACK("Hello world"));       
        }
}
 
// Подскажите пожалйста, что я делаю не так?
 
// или, всё же было бы удобнее сделать так:
 
var myClass:MyClass = new MyClass (MyStyle.BLACK, "Hello world");
 
// где "MyStyle.BLACK" строковая константа а в классе "MyClass"
// был бы метод который запрашивает настройки согласно критериям константы у "MyStyle"?


3p.station 02.09.2011 02:17

в чем проблема ?

Добавлено через 8 минут
Код AS3:

public function MyClass (args:Object) 
        {
                // ...
        }

смотри, у тебя же статическая функция(пишется с маленькой буквыв black!) возвращает _BLACK(тоже маленькими! _black) который в свою очередь есть объект(var _BLACK:Object = { };). Дальше ты этот Объект передаешь параметром, но мтеод должен принять тип параметра MyStyle и тут наверно и возникает ошибка.

stweet 02.09.2011 02:30

хитрый поворот событий =)
вот это уже вопрос!
Цитата:

Сообщение от 3p.station (Сообщение 1027581)
в чем проблема ?

а не, маленькая - большая, меня воспитали писать статические и константы в ВЕРХНЕМ регистре. А за прописные получал подзатыльники.

Проблема в том что хочу передавать объект "явного" типа данных собержащий некие аргументы.
т.е. создавая объект (new MyClass) я не ошибся в передаче нужных параметров (MyStyle) классу (MyClass). Но предварительно задать этому объекту данных(MyStyle) некие аргументы.

Добавлено через 4 минуты
Вот и прошу помочь выбрать или подсказать или ткнуть пальцем, что я делаю не так?
Я уже и через интерфейсы пробовал. Пишет что статика должна работать только в статичном(т.е. в своём) классе, а мне желательно передавать только (MyStyle) данные и ни каких других.

Добавлено через 1 час 14 минут
Код AS3:

// Вышел вот на такое создание объекта с некими аргументами.
var newText:MyTextField = new MyTextField ("Hello world!", StyleFonts.BLACKSHADOW ("arial", 24) );


3p.station 02.09.2011 12:09

ну так и передавай объект явного типа.
Код AS3:

var myStyle:MyStyle = new MyStyle();
myStyle.black("kuku");
var myClass:MyClass = new MyClass (myStyle);

тоько, в этом случае в классе MyStyle не нужно юзать статики...

stweet 02.09.2011 13:59

спасибо, думал есть более проще вариант. Остановился на
Код AS3:

var newText:MyTextField = new MyTextField ("Hello world!", StyleFonts.BLACKSHADOW ("arial", 24) );

т.е. смирился с Object. Пока это самый удачный вариант.
Надо попробовать унаследоваться от Object и попробовать принимать только наследника.


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

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