Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 09.04.2013, 05:28
zzSpirit вне форума Посмотреть профиль Отправить личное сообщение для zzSpirit Найти все сообщения от zzSpirit
  № 1  
Ответить с цитированием
zzSpirit
 
Аватар для zzSpirit

Регистрация: Jan 2013
Адрес: Москва, Сходня
Сообщений: 41
По умолчанию Создание функций без класса

Доброй ночи!
В какой-то книге я читал, что функцию можно описать вне класса и может быть даже вне пакета, что-то типа такого файла получается:
Код AS3:
package sources
{
function loadImage(img_url:String):void{ /* code... */ }
}
А потом использовать функции без объекта и экземпляра, типа так:
Код AS3:
package sources
{
	public class Main extends Sprite
	{
		public function Main():void
		{
			var img:Loader = loadImage("http:\/\/grupos.emagister.com\/logos_grupo/7/1/logogrupo_7174.jpg");
		}
 
	}
}
Пытаюсь по-всякому сделать, не получается. Помоему я что-то перепутал, хотя вроде что-то подобное по AS3 читал... Я хочу описать функции, которые мне понадобятся во многих классах, но как-то неправильно в каждом классе инициализировать класс функций снова, вот и ищу более красивое решение.

Если так сделать нельзя, то какие есть варианты?
Я пока придумал только так, но помоему не очень как-то - создать новый класс Functions синглтоном и в нем описать методы функций.

Старый 09.04.2013, 08:06
samana вне форума Посмотреть профиль Отправить личное сообщение для samana Найти все сообщения от samana
  № 2  
Ответить с цитированием
samana
 
Аватар для samana

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Про глобальные функции, посмотрите тут http://code.fabian-irsara.com/2011/0...functions-as3/
Так же не забывайте, что можно создать и просто статические функции, которые так же можно будет вызывать не создавая экземпляр класса, а только через имя класса. (например как Math.sin(),Math.cos() и тд)

Старый 09.04.2013, 08:59
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 3  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Пытаюсь по-всякому сделать, не получается. Помоему я что-то перепутал, хотя вроде что-то подобное по AS3 читал... Я хочу описать функции, которые мне понадобятся во многих классах, но как-то неправильно в каждом классе инициализировать класс функций снова, вот и ищу более красивое решение.
Есть одно ограничение. Файл, который модержит такую функцию, должен называться так же как и сама функция.
Проще говоря создаем файл someFunc.as
а в нем пишем:
Код AS3:
package {
     public function someFunc():void {
            trace("функция вне класса");
     }
}
Вот и все. Но эту штуку надо будет так же импортировать в нужное место, если она лежит не в корневом пакете

Старый 10.04.2013, 01:50
zzSpirit вне форума Посмотреть профиль Отправить личное сообщение для zzSpirit Найти все сообщения от zzSpirit
  № 4  
Ответить с цитированием
zzSpirit
 
Аватар для zzSpirit

Регистрация: Jan 2013
Адрес: Москва, Сходня
Сообщений: 41
Цитата:
Про глобальные функции, посмотрите тут http://code.fabian-irsara.com/2011/0...functions-as3/
Так же не забывайте, что можно создать и просто статические функции, которые так же можно будет вызывать не создавая экземпляр класса, а только через имя класса. (например как Math.sin(),Math.cos() и тд)
Ах да, как же я про статические функции забыл, в принципе удобно.

Цитата:
Сообщение от caseyryan Посмотреть сообщение
Вот и все. Но эту штуку надо будет так же импортировать в нужное место, если она лежит не в корневом пакете
Ну, это не проблема думаю:
Код AS3:
import src.functions.*;
Тоже вполне удобный способ.

Всем спасибо, вопрос решен

Создать новую тему Ответ Часовой пояс GMT +4, время: 03:34.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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