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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 01.06.2008, 23:11
vooparker вне форума Посмотреть профиль Отправить личное сообщение для vooparker Посетить домашнюю страницу vooparker Найти все сообщения от vooparker
  № 11  
Ответить с цитированием
vooparker
 
Аватар для vooparker

Регистрация: Apr 2006
Адрес: Kursk, Russia
Сообщений: 523
Отправить сообщение для vooparker с помощью ICQ
2Nazorei:
динамически подгрузить скрипт и его выполнить не получиться, так как он не скомпилирован в байткод понятный для flash player (можно конечно попробывать извращения с D.eval тем же, но оно вам надо?). Это вам не Javascript.
Использование import "не подгружает" скрипт во время выполнения программы, import указывает на то, что код из указанного файла должен быть скомпилирован в ваш swf, после чего swf будет плевать на ваш .as-файл. Так что прежде чем браться за написание чего то ни было на ActionScript 3, потратьте время и почитайте хотя бы основы.

2mre:
Никоем образом не хочу вас обидеть, но прежде чем отвечать прочитайте что нужно человеку. И не говорите того, что не знаете точно. Вы привели код, который ну никак не будет работать (откуда класс myscript - кстати почему класс с маленькой буквы? - знает что такое vuvod?). Почему вы настолько уверены что создать отдельную функцию нельзя? ActionScript 3 позволяет создавать такие функции. Например имеем файл sayHello.as в директории some:
Код:
package some
{
	public function sayHello (name:String):String
	{
		return "Hello, " + name + "!";
	}
}
используем так:
Код:
import some.sayHello;
trace(sayHello("world"));
__________________
Челябинские флешеры настолько суровы, что пишут код во Flash IDE

Старый 01.06.2008, 23:58
Сайлас вне форума Посмотреть профиль Отправить личное сообщение для Сайлас Найти все сообщения от Сайлас
  № 12  
Ответить с цитированием
Сайлас

Регистрация: Mar 2008
Сообщений: 259
Можно, но ведь "не желательно" с точки зрения идеологии AS3?

Старый 02.06.2008, 00:25
mre вне форума Посмотреть профиль Отправить личное сообщение для mre Посетить домашнюю страницу mre Найти все сообщения от mre
  № 13  
Ответить с цитированием
mre
 
Аватар для mre

Регистрация: Jul 2007
Адрес: Москва
Сообщений: 996
Я привел код который показал как включить as-файл и затем его использовать (речи об использовании внешних файлов уже после компиляции не велось), понятно что myscript не увидит vuvod, но это уже другой вопрос, я лишь показал как получить доступ к функции (функцию перенес copy-past-ом и в ней может быть что угодно). И я думал что именно это требовалось автору топика.
Разве если класс с маленькой буквы код будет неработоспособен?
А насчет отдельных функций - действительно не знал, но на мой взгляд это не очень красивый код получается с точки зрения ООП.


Последний раз редактировалось mre; 02.06.2008 в 00:27.
Старый 02.06.2008, 00:28
vooparker вне форума Посмотреть профиль Отправить личное сообщение для vooparker Посетить домашнюю страницу vooparker Найти все сообщения от vooparker
  № 14  
Ответить с цитированием
vooparker
 
Аватар для vooparker

Регистрация: Apr 2006
Адрес: Kursk, Russia
Сообщений: 523
Отправить сообщение для vooparker с помощью ICQ
2Сайлас: если вы про собственные функции, то не вижу ничего криминального, скажем вам нужна какая-нибудь одна утилитная функция, ну зачем ради этого создавать отдельный класс, кроме тоже в самом ActionScript 3 такие функции присутствуют.
__________________
Челябинские флешеры настолько суровы, что пишут код во Flash IDE

Старый 02.06.2008, 02:41
Nazorei вне форума Посмотреть профиль Отправить личное сообщение для Nazorei Найти все сообщения от Nazorei
  № 15  
Ответить с цитированием
Nazorei
 
Аватар для Nazorei

Регистрация: May 2008
Сообщений: 16
Нуу... Я прогер PHP+Perl+JS(Ajax)+MySQL с 2.5 стажем но ничего более, AS вообще не знаю, и вот от не знания и не имении времени получаются глупые вопросы.

А как на счет include "myscript.as"; ?

Так, я понимаю что тоже изначально будет скомпилирован вместе с инклудным as И похоже не получится сделать например так:

Код:
<mx:HTTPService id="h_send" url="test.php" method="POST" resultFormat="text" result="itemp_Handler(event)"/>

<mx:Script><![CDATA[

 import mx.rpc.events.ResultEvent;

 private function irun():void {h_send.send();}

 public function itemp_Handler(event:ResultEvent):void { 
  var s:String = String(event.result);  // возвращает имя скрипта   
  include s+".as";                             
 }

]]></mx:Script>
Я так рассчитывал на это) но похоже не выйдет.
Компиляция хорошо, но и кое-чего портит

Старый 02.06.2008, 10:33
Сайлас вне форума Посмотреть профиль Отправить личное сообщение для Сайлас Найти все сообщения от Сайлас
  № 16  
Ответить с цитированием
Сайлас

Регистрация: Mar 2008
Сообщений: 259
Так я и говорю, что можно, но это не айс, то бишь не ООП
Ну если нужны всевидимые функции создайте класс Utilities и вызывайте статик методы ради бога

Старый 02.06.2008, 10:54
vooparker вне форума Посмотреть профиль Отправить личное сообщение для vooparker Посетить домашнюю страницу vooparker Найти все сообщения от vooparker
  № 17  
Ответить с цитированием
vooparker
 
Аватар для vooparker

Регистрация: Apr 2006
Адрес: Kursk, Russia
Сообщений: 523
Отправить сообщение для vooparker с помощью ICQ
2Сайлас:
И через некоторое время этот класс станет коллекцией подчас абсолютно логически несвязанных между собой методов, что по всей видимости является очень хорошей практикой ООП.
__________________
Челябинские флешеры настолько суровы, что пишут код во Flash IDE

Старый 02.06.2008, 10:57
Сайлас вне форума Посмотреть профиль Отправить личное сообщение для Сайлас Найти все сообщения от Сайлас
  № 18  
Ответить с цитированием
Сайлас

Регистрация: Mar 2008
Сообщений: 259
А что в этом плохого? Он же в памяти не держит результат выполнения всех функций
Я думаю, что по скорости абсолютно идентично, что функция глобальной видимости, что класс с кучей утилит-статиков.

P.S. Если уж совсем много такого рода вспомогательных функций, то можно разбить на несколько классов.
P.P.S. А можно неймспейс сделать ООП же намного удобнее, чем просто функции. В конце концов у просто функций тебе никто в среде разработки не дополнит и не допишет


Последний раз редактировалось Сайлас; 02.06.2008 в 11:02.
Старый 02.06.2008, 11:24
vooparker вне форума Посмотреть профиль Отправить личное сообщение для vooparker Посетить домашнюю страницу vooparker Найти все сообщения от vooparker
  № 19  
Ответить с цитированием
vooparker
 
Аватар для vooparker

Регистрация: Apr 2006
Адрес: Kursk, Russia
Сообщений: 523
Отправить сообщение для vooparker с помощью ICQ
2Сайлас:
я ни в коем случае не говорю, что использование all-static классов плохое решение, нет, оно замечательно, когда оно необходимо, когда есть группа утилитных функции каким-то ни было образом логически связанных между собой. А вот насчет нэймспэйсов, так это вообще не из той оперы, потому как в данном случае это уж полное извращение.
__________________
Челябинские флешеры настолько суровы, что пишут код во Flash IDE

Старый 02.06.2008, 14:06
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 20  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Nazorei:
include - директива для компайлера (раньше не все компайлеры ее понимали, поэтому не рекоммендовалось, сейчас - не знаю, но по привычке не использую =) ее назначение - указать компайлеру откуда продолжать читать исходный код (помниться, раньше было ограничение на 255 последовательных инклюдов, но могу ошибаться). Скорее всего, что то, что вам нужно - это скомпилировать несколько отдельных модулей и загружать их по мере необходимости.
__________________
Hell is the possibility of sanity

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

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

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


 


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


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