связь fla и as

То что касается флеша, но не касается ВКонтакте API. Например проблемы при создании прыгающего мячика.
Аватара пользователя
GrafMine
Сообщения: 24
Зарегистрирован: 11 ноя 2010, 00:05

связь fla и as

Сообщение GrafMine »

Меня интересует какая связь между fla и as ,в программировании понимаю(Delphi,C,html)
Вопросы:
1).as является якобы модулем для .fla?
2)почему при подключении класса взять например даже отсюда .as :http://flapps.ru/forum/topic3.html, то при написании кода в .fla тотже "stop();" игнорируется или даже ругается на него? Тем же самым он просто зацикленно бегает по всем кадрам приложения...
3)возможно в .as описать функции, для вывода в .fla?
P.S.Зарание спасибо за ответы.
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: связь fla и as

Сообщение Александр »

1. Да
2. Нельзя подключить к fla основной класс и при этом писать код в кадре. Только что-то одно из этого.
Вызывать другие классы можно из кода в кадре.
3. В as можно описывать функции и вызывать их в основной части приложения.
Чтобы использовать класс, его нужно правильно описать. Для этого нужно изучать ActionScript.

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

package {    public class Test extends Sprite {        public function Test() {            // код        }        // другие функции    }}
Аватара пользователя
GrafMine
Сообщения: 24
Зарегистрирован: 11 ноя 2010, 00:05

Re: связь fla и as

Сообщение GrafMine »

Спасибо.Я как рас таки и пытаюсь усваивать ActionScript , но все же разжеванный ответ намного лучше дает понятие о чем либо :roll:
По примеру Александра я попытался написать самую простую программу для понимания вызываний классов из кода в кадре.
В файле ActionScript (Test.as) я написал следующее :

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

  package {        public class Test extends Sprite {          Public function Test1(a:Number,b:Number):Number; {              sum = a+b;              return sum;          }      }  } 
Теперь я не совсем понял как из кадра вызвать данный класс:

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

 import  ???.???; Trace (Test1(2,3));  
Также интересует вопрос в коде :

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

 package {                                               public class Test extends Sprite {              public function Test() {            // код        }        // другие функции    }} 
1)Что если сделать первую строку в ActionScript

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

package Tester { 
И в дальнейшем к вызову данного класса в кадре применить такое :

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

import Tester.Test;
?(Получится ли вызов в кадр? и описание всех переменных\функций описанных ранее c as?)


2)В чем заключается разница :

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

public class Test extends Sprite {      
и

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

public class Test  {      
?
Пример :

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

public class VKBase {
и

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

public class Main extends Sprite {
P.S.Главное понять суть с этими пакетами , а дальше все пойдет как по маслу ;)
Аватара пользователя
bodnar
Модератор
Модератор
Сообщения: 1399
Зарегистрирован: 03 апр 2010, 06:41

Re: связь fla и as

Сообщение bodnar »

Вызвать класс логически не верное предложение. Правильнее говорить создать экземпляр класса.

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

var t = new Test1();
К тому же, если память не изменяет, метод-конструктор ничего не возвращает, создавай другой какой-то метод. и через экземпляр класса вызывай этот метод

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

t.newMethod(a,b);
Если делать package tester, то нужно файл положить в папку tester и можно будет обращаться так как ты написал.

extends означает что создаваемый тобой класс расширят (наследует) все методы и свойства. Так, если написать extends Sprite то твой класс автоматически будет иметь все те же свойства и методы, например его можно будет добавить на сцену и т.д.
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: связь fla и as

Сообщение Александр »

Метод проб конечно действенный, особенно если есть понимание программирования, но исключать из изучения книги - не лучший способ. А если это не первый язык программирования, то не обязательно вникать в каждую строчку книги, достаточно понять смысл.

В книге Колин Мук - Essential ActionScript 3.0, про пакеты и описание класса написано достаточно хорошо. Или даже можно поискать информацию в статьях в интернете. Времени на понимание уйдёт гораздо меньше, чем если задавать вопросы и ждать ответы.

такой код не заработает

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

Trace ('текст');
знаешь почему? Разница между trace и Trace в AS есть. Это не делфи... Регистр важен.
Так же и Public - не верно.

Почему ты называешь Test1 ? Специально описываешь другую функцию или из-за недостаточного понимания назвал конструктор не так как класс?

Как видишь, ошибок много. Вряд ли ты всегда на все свои вопросы будешь получать разжеванные ответы. Чтобы научиться быстрее, читай учебные материалы.
Аватара пользователя
GrafMine
Сообщения: 24
Зарегистрирован: 11 ноя 2010, 00:05

Re: связь fla и as

Сообщение GrafMine »

Не могу понять в чем ошибка сделать даже самый банальный экземпляр класса путем обыкновенного подключения к флешу

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

 package   {      import flash.display.*;            public class Test extends Sprite       {          private var sum:Number;          public function Test(a:Number,b:Number):Number          {                          var t = new Test();                          t.newMethod(3,4);              sum = a+b;              }         trace (t);      }  } 
при компиляции пишет след. ошибки:
Конструктор не может указывать возвращаемый тип. (на сколько я понял нужен :void) ну понятия не имею как это сделать..

Так же вопрос об вызове экземпляре класса в кадре не раскрыт:

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

import Test;trace(t);?
Учел все что сказал Александр:
у меня есть два ВидеоКурса
1)Вконтакте API - как создавать flash приложения для социальной сети ВКонтакте
2)Adobe Flash CS4 , Actionscript 3.0
как на зло про пакеты там нечего не сказано толком,ну для сравнения с книгой Колин'а и одним видео уроком одной и той же темы, это небо и земля

В книге Колин Мук нашел эту главу 29 , еще перед тем как создать эту тему.
Разница только в том что когда учишься через книгу там идет все ("прямолинейно" не шагу в сторону)
В интернете про пакеты выдает только на офф сайты документаций, также нашел в интернете на англ форуме,ну опять же англ есть англ =)

По этому рассказ про пакеты в видео формате на протяжении 5 минут не заменит не какую книгу...
Увы таких Видео-курсов затрагивающие пакеты нету :evil:
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: связь fla и as

Сообщение Александр »

GrafMine писал(а):(на сколько я понял нужен :void) ну понятия не имею как это сделать..

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

public function Test(a:Number,b:Number):void
и не использовать в конструкторе return.
GrafMine писал(а):В книге Колин Мук нашел эту главу 29 , еще перед тем как создать эту тему.
глава 29?!?
глава 1, страницы 39-47.
GrafMine писал(а):Разница только в том что когда учишься через книгу там идет все ("прямолинейно" не шагу в сторону)
зачем делать шаг в сторону при изучении конкретной темы - "описание пакетов"?

Test.as

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

package {    public class Test    {        // делаем переменные доступные в этом классе        private var a:Number;        private var b:Number;        // эту функцию вызываем и передаём ей 2 часла        public function Test(num1:Number, num2:Number)        {            // определенным выше двум переменным этого класса присваиваем переданные значения            a = num1;            b = num2;        }                // функция выполняемая с переменными этого класса        public function sum():Number        {            return a+b;        }    }}
Код в кадре:

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

var t = new Test(11,22);trace(t.sum());
Аватара пользователя
GrafMine
Сообщения: 24
Зарегистрирован: 11 ноя 2010, 00:05

Re: связь fla и as

Сообщение GrafMine »

Большое спасибо за предоставленный пример,теперь логически хоть можно понять что к чему.
Ну так как этот пример сделал не я, было бы хорошо предоставить домашние задание для закрепления данного материала :)
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: связь fla и as

Сообщение Александр »

GrafMine писал(а):домашние задание для закрепления данного материала
Начни делать приложение) Ну или хотя бы попробуй создать связь класса Test с другим классом.
Аватара пользователя
GrafMine
Сообщения: 24
Зарегистрирован: 11 ноя 2010, 00:05

Re: связь fla и as

Сообщение GrafMine »

Перепробовав различные примерчики с классами нормально все было, но стоит задеть что-нибудь "серьезное" как тут же проблема =)
Решил с класса предоставленный тут -> http://flapps.ru/forum/topic3.html
в кадр вывести аватар по конечному итогу :

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

addChild(photoLoader);
пробовал делать новые переменные, ну флеш выбивал все больше и больше ошибок:) хоть весь пакет переписуй в кадр :oops:
Так же я пробовал другие пути получения аватара через кадр, ну больше чем ссылка в приложении на мой аватар не удавалось...
Снова прошу помочь в этом "не легком" деле :)
Ответить