Совмещение дизайна и кода

Обсуждение и помощь по вопросам взаимодействия с ВКонтакте API в Flash-приложениях (ActionScript)
Ответить
dr1emaver
Сообщения: 78
Зарегистрирован: 16 июл 2011, 20:08

Совмещение дизайна и кода

Сообщение dr1emaver »

Здравствуйте, возникла проблема совмещения дизайна и кода. Код и дизайн описаны в разных классах.
Опишу свои действия: Создана сцена к сцене прикреплен класс Main. Соответсвенно в Main.as код:

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

package {    import flash.net.URLLoader;    import flash.net.URLRequest;    import flash.net.URLVariables;    import flash.net.URLRequestMethod;    import flash.display.*;    import flash.events.*;    import flash.text.TextField;    import fl.containers.UILoader;    import flash.display.SimpleButton;    import flash.display.BitmapData;    import vk.APIConnection;    import vk.events.*;    import vk.ui.VKButton;    import fl.controls.Button;    import fl.controls.TextArea;    import fl.controls.DataGrid;    import fl.controls.ScrollPolicy;    import fl.data.DataProvider;    import fl.events.ListEvent;    import fl.controls.TextInput;    import fl.controls.Label;    import flash.display.MovieClip;    import flash.text.TextFormat;      public class Main extends Sprite    {        private var api_id:Number = ....;// ID приложения        private var url_loader:URLLoader;        private var url_request:URLRequest;        private var viewer_id;        private var secret:String;        private var sid:String;        private var api_url:String;        private var auth_key;        private var news:TextField = new TextField  ;        //... //Задание переменных Label,DataGrid,TextArea и тд..        public function Main():void        {             // получаем данные из flashVars            // id просматривающего приложение            flashVars = stage.loaderInfo.parameters as Object;            viewer_id = flashVars['viewer_id'];            // secret для генерации сигнатуры            secret = flashVars['secret'];            // id сессии            sid = flashVars['sid'];            // адрес API-сервиса            api_url = flashVars['api_url'];             auth_key = flashVars['auth_key'];              // вызываем функцию получения профиля пользователя, просматривающего приложение            var VK:APIConnection = new APIConnection(flashVars);             //getProfile(viewer_id);            VK.api('getProfiles',{uids:viewer_id,fields:'photo_big'},onComplete,onError);            //uenter();            VK.api('friends.getAppUsers',{},uenter,onError);             var child:design = new design  ;            addChild(child);         }         // функции вывода на экран, работа с бд и тд    }} import flash.display.MovieClip;import flash.events.MouseEvent;import caurina.transitions.Tweener; class design extends MovieClip { public function design(){    stage.addEventListener(MouseEvent.MOUSE_MOVE,onMoveMouse);}private function onMoveMouse(event:MouseEvent):void{    //box2dObj.x = mouseX;    //простое перемещение    Tweener.addTween(box2dObj,{x:mouseX,time:3,transition:'easeoutelastic'});    //перемещение твинером;    event.updateAfterEvent();}}


Ошибку выдает такую, но даже не пишет в какой строчке..
1046: Тип не найден или не является константой времени компиляции: InstanceInfo.
Этот код мне нужен для того, чтобы за мышкой передвигался блок.. Ребят помогите пожалуйста, очень прошу.
Аватара пользователя
bodnar
Модератор
Модератор
Сообщения: 1399
Зарегистрирован: 03 апр 2010, 06:41

Re: Совмещение дизайна и кода

Сообщение bodnar »

два класса в одном файле? непопулярный прием
dr1emaver писал(а):var child:design = new design ;
мм? без скобок?
dr1emaver
Сообщения: 78
Зарегистрирован: 16 июл 2011, 20:08

Re: Совмещение дизайна и кода

Сообщение dr1emaver »

да, в Main.as
dr1emaver
Сообщения: 78
Зарегистрирован: 16 июл 2011, 20:08

Re: Совмещение дизайна и кода

Сообщение dr1emaver »

bodnar писал(а):два класса в одном файле? непопулярный прием
dr1emaver писал(а):var child:design = new design ;
мм? без скобок?
А как можно по-другому?
Со скобками тот же эффект..
Аватара пользователя
bodnar
Модератор
Модератор
Сообщения: 1399
Зарегистрирован: 03 апр 2010, 06:41

Re: Совмещение дизайна и кода

Сообщение bodnar »

Один класс.
Вместо

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

var child:design = new design();            addChild(child);
добавляешь нужные элементы и работаешь с самим этим классом

закомментируй для начала кстати эти две строчки и проверь не пропала ли ошибка, если нет продолжать комментировать другие подозрительные строчки пока не найдешь причину
dr1emaver
Сообщения: 78
Зарегистрирован: 16 июл 2011, 20:08

Re: Совмещение дизайна и кода

Сообщение dr1emaver »

bodnar писал(а):Один класс.
Вместо

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

var child:design = new design();            addChild(child);
добавляешь нужные элементы и работаешь с самим этим классом

закомментируй для начала кстати эти две строчки и проверь не пропала ли ошибка, если нет продолжать комментировать другие подозрительные строчки пока не найдешь причину
Закомментировал ошибка осталась..А как проверять, тут ведь строчка не написана, а два класса по отдельности работают нормально. Класс design нужен только для того, чтобы прямоугольник двигался за мышкой..
Аватара пользователя
bodnar
Модератор
Модератор
Сообщения: 1399
Зарегистрирован: 03 апр 2010, 06:41

Re: Совмещение дизайна и кода

Сообщение bodnar »

dr1emaver писал(а):Класс design нужен только для того, чтобы прямоугольник двигался за мышкой..
перенеси слушатель события "движение мыши" в основной класс, и будет он у тебя так же за мышкой двигаться

dr1emaver писал(а):Закомментировал ошибка осталась..
ну комментируй дальше, например весь класс дезигн целиком
dr1emaver
Сообщения: 78
Зарегистрирован: 16 июл 2011, 20:08

Re: Совмещение дизайна и кода

Сообщение dr1emaver »

Спасибо! помогли, все перенес в один класс и заработало)
dr1emaver
Сообщения: 78
Зарегистрирован: 16 июл 2011, 20:08

Re: Совмещение дизайна и кода

Сообщение dr1emaver »

И снова я) Возник вопросик с выводом данных из БД. Сейчас вывод происходит в таблицу.. (DataGrid), а нужно сделать вывод строчный. Это связано с дизайном приложения.

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

private function newslist(e:Event):void            var b;            var h=e.target.data;            h=h.split("_");            for (var i = 0; i < (h.length-1); i++)                      {                b=h[i].split(":");                                dp.addItem({pid:b[0], uid:b[1], Name:b[2], News:b[3], Information:b[6] , date:b[4]});                            }                                   list.x=220;            list.y=125;            list.resizableColumns=false;            list.setSize(500,600);                      list.columns=["Name", "News", "Information","date"];            list.getColumnAt(3).width=80;            list.getColumnAt(2).width=50            list.getColumnAt(1).width=170;            list.getColumnAt(0).width=120;            list.dataProvider=dp;            list.doubleClickEnabled=true;            list.addEventListener(ListEvent.ITEM_CLICK,goon);            scene.addChild(list);                           }
Тоесть сейчас например вывод такой |Имя|Новость|Информация|дата| , а нужно вывести в такой Имя Новость Информация (какая нибудь кнопка ) дата . Ну тоесть свобода размещения и форматирования.
Подскажите пожалуйста.
вот php код:

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

while ($row = mysql_fetch_array($result)) {        echo $name.":".$date.":".$information.":".$news."_"; } 
Ответить