![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Oct 2008
Сообщений: 52
|
Собственно вопрос.
У меня есть СуперКласс, подкласс и fla файл с прилепленным суперклассом: СуперКласс(SuperClass.as): package com.GameClass.Superclass {import flash.display.MovieClip; import flash.events.*; //??? import flash.ui.* ; import flash.external.*; public class SuperClass extends MovieClip { public function SuperClass(){ trace("Привет");} }} подкласс(to_path.as): package com.GameClass.control { import com.GameClass.Superclass.SuperClass; import flash.events.*; //??? Тут я описал флеш-класс, но можно было сделать так чтобы подкласс //наследовал все подключаемые флеш-классы из родительского класса(Суперкласса)?? public class to_path extends SuperClass { public function to_path(button_name,moveclip_name,to_path:String) /* Вот та самая функция */ { super(); button_name.addEventListener(MouseEvent.MOUSE_DOWN, todo); /* кнопка слушает на нажатии мышки */ function todo(e:MouseEvent):void { // функция обработки moveclip_name.gotoAndStop(to_path);}; } } } import com.GameClass.control.to_path; this.stop(); to_path.to_path(panel.b1,stage,"t2"); /*??? я попробовал так передать параметры функции подкласса to_path, но выдается ошибка "1061: Call to a possibly undefined method to_path through a reference with static type Class." если закомментировать эту строчку ролик работает, но без нужной функции. */ Последний раз редактировалось nickorsk; 19.12.2009 в 14:15. |
|
|||||
|
Регистрация: Nov 2007
Адрес: Moscow
Сообщений: 566
|
Что за жесть вы понаписали? Имена классов — ТОЛЬКО с большой буквы. Имена пакетов — ТОЛЬКО с маленькой. Имена методов — с маленькой.
to_path.to_path — это что такое? Вы пытаетесь конструктор вручную вызвать? Конструктор автоматически вызывается при создании экземпляра класса.
__________________
#flasher@irc.trg.ru:6667 |
|
|||||
|
Регистрация: Oct 2008
Сообщений: 52
|
>Obi
Собственно вопрос в другом состоял. НА счет имен, вы совершенно не правы, не имеет значения с какой буквы что описывать. Например если задана структура /Gameclass/Control/control.as При описании пакета: При импорте класса: Все будет работать))) Потому что важно не то с какой буквы описывать, а важно то чтобы описание совпадало с иерархической структурой проекта -в общем сами поробуйте. Можно даже писать так - это просто путь к классу, а как названы папки с большой буквы или с маленькой -не важно, главное учитывать регистр при прописи пути к классам. П.С. Вопрос я задал не про это. Последний раз редактировалось nickorsk; 19.12.2009 в 16:05. |
|
|||||
|
Регистрация: Nov 2007
Сообщений: 1,724
|
Так-то работает, но кодерами принято писать как описал Obi
|
|
|||||
|
Регистрация: Oct 2008
Сообщений: 52
|
Кому как нравиться)))
Просто учитывается регистр, собственно как во всех приложениях основанных на стандартах C++ Суть в том что ошибки в данном случаи никакой нет на счет букв. Мне интересно другие вопросы. |
|
|||||
|
Регистрация: Jan 2009
Сообщений: 1,651
|
если хотите заниматься программированием - тогда пишите так, как принято, чтобы другие не ломали глаза, читая ваш код, или вас просто не возьмут на работу. Есть мелкие разногласия, типа переноса "{" и префиксов в названиях функций/свойств класса, но так же есть общепринятые нормы.
конкретно по вопросам: Цитата:
Вообще говоря импорт ничего не делает, кроме как указывает компилятору где глядеть классы, которые вы упомянули в коде. Если поставить импорт import flash.events.*; - это не значит, что ваша флешка станет на весь пакет flash.events.* тяжелее. здесь ты написал полный бред. У тебя есть экземпляр класса to_path, чтобы вызывать его функцию? Так какого черта ты пытаешься ее вызвать? Именно по-этому программеры и называют классы с большой буквы, чтобы не путаться, где экземпляр класса, а где обращение к классу.
__________________
мой пустой блог |
|
|||||
|
Регистрация: Oct 2008
Сообщений: 52
|
Отредактировал так:
СуперКласс: package com.gameclass.superclass {import flash.display.MovieClip; import flash.events.*; import flash.ui.* ; import flash.external.*; public class SuperClass extends MovieClip { public function SuperClass (str:String = null) { trace(str); } }} package com.gameclass.control { import com.gameclass.superclass.SuperClass; public class ToPath extends SuperClass { public function ToPath() {super("привет");} public function patha(button_name,moveclip_name,to_path:String) {button_name.addEventListener(MouseEvent.MOUSE_DOWN, todo); function todo(e:MouseEvent):void { moveclip_name.gotoAndStop(to_path);}; /*функция, при нажатии кнопку "button_name" переводит в объекте "moveclip_name" на кадр с значением имени "to_path" */ } } } //import com.gameclass.superclass.SuperClass; import flash.events.*; import com.gameclass.control.ToPath; var closepaneler:int; closepaneler=0; var path:ToPath = new ToPath(); //var sup:SuperClass= new SuperClass(); this.stop(); path.patha(panel.b4,this,"t2"); // тут я подставляю значения в мою функцию patha, описанную в подклассе ToPath. closepanel.addEventListener(MouseEvent.MOUSE_DOWN, closepan); // кнопка слушает на нажатии мышки function closepan(e:MouseEvent):void { // функция обработки if (closepaneler==0){ panel.visible=false; closepaneler=1; m1.gotoAndStop("t2");}else{ panel.visible=true;closepaneler=0; m1.gotoAndStop("t1");} } Error: Error #2136: SWF-файл file:///C|/Documents%20and%20Settings/nickorsk/Desktop/My%20game/file1.swf содержит недопустимые данные. at com.gameclass.control::ToPath/frame2() Я уже все сам сделал))) Суперкласс вообще не нужен, наоборот надо использовать несовмещенные классы в моем случаи. Вот такой вопрос, в коде многих сред программирования есть такая очень полезная штука - как переход на метку в коде , при определенном условии - типа goto метка Во Flash мне как раз нужен переход на метку в коде. Допустим мне при выполнении условия инструкции if в теле функции нужно сразу игнорируя определенный нижний кусок кода перейти в более нижнюю часть кода тела функции, т.е. к метке строки кода. НУ а если условие инструкции if не выполнено, то дальше продолжать выполнять тело функции. Если такая возможность в FLASH?? Последний раз редактировалось nickorsk; 19.12.2009 в 23:28. |
|
|||||
|
Регистрация: Apr 2009
Сообщений: 117
|
goto отсутствует так же как и sleep
|
|
|||||
|
Регистрация: Oct 2008
Сообщений: 52
|
Понятно, Спасибо за ответы.
|
|
|||||
|
Регистрация: Nov 2007
Адрес: Moscow
Сообщений: 566
|
В своем посте я предположил в чем у вас может быть проблема:
Цитата:
Цитата:
![]()
__________________
#flasher@irc.trg.ru:6667 |
![]() |
![]() |
Часовой пояс GMT +4, время: 06:25. |
|
|
« Предыдущая тема | Следующая тема » |
| Теги |
| Подклассы , Сабклассы , Супер Классы |
|
|