AS3程序:Kclock(Flash 时钟)

本文介绍了AS3与AS1、AS2的显著差异,如代码规范、document class的使用,以及如何利用Timer类替代setInterval方法。作者通过一个下午的时间制作了Kclock时钟程序,以此体验AS3的编程特点。文章提供了程序的效果截图,以及包含源文件和可执行文件的下载链接。
摘要由CSDN通过智能技术生成
个人总结:
1、AS3代码规范和习惯和之前的AS1,AS2是完全不同的,变得太多了!
2、比较欣赏AS3中的document class引用,能够完全做到界面和代码完全分离!界面在Kclock.fla文件里,所有的代码都在Kclock.as代码文件里!爽吧!
3、AS1,AS2是通过attachMovie方法把库里(通过Linkage中的关键字)的MC加载到场景中的,AS3则是将把库里(通过Linkage中的类)的MC,将其看作一个类,通用new 类名的方式,再通过addChild方法把它加载到场景中。这个是完全和原来不一样了!
4、用Timer类来代替原来的setInterval方法,这个到我原来写过的Thread类很类似的(激动一下)!
5、这个程序我花了一个下午的时间写出来的,属于一个习作,为了感受一下AS3!对于原来的flash开发者来说:就是把习惯进行根本 转变一下!

效果截图:

Kclock代码:
package {
      import flash.display.Sprite;
      import flash.events.TimerEvent;
      import flash.utils.Timer;

      public class Kclock extends Sp

以下是使用RT1052读取AD7616的示例程序: ```c #include "board.h" #include "fsl_debug_console.h" #include "fsl_spi.h" #include "pin_mux.h" #include "clock_config.h" #define EXAMPLE_SPI_MASTER SPI4 #define EXAMPLE_SPI_MASTER_IRQ FLEXSPI_IRQn #define EXAMPLE_SPI_MASTER_CLK_FREQ CLOCK_GetIpFreq(kCLOCK_Flexspi4) #define EXAMPLE_SPI_SLAVE_SELECT_INDEX AD7616_SPI_CS #define EXAMPLE_SPI_MASTER_SOURCE_CLOCK kCLOCK_Flexspi4 #define BUFFER_SIZE 8U /******************************************************************************* * Variables ******************************************************************************/ spi_master_handle_t g_masterHandle; spi_transfer_t g_masterXfer; uint8_t g_masterRxData[BUFFER_SIZE] = {0}; /******************************************************************************* * Code ******************************************************************************/ int main(void) { uint32_t sourceClock = 0U; uint32_t i = 0U; BOARD_InitPins(); BOARD_BootClockRUN(); BOARD_InitDebugConsole(); /* attach 12 MHz clock to FLEXCOMM4 (SPI4) */ CLOCK_AttachClk(kFRO12M_to_FLEXCOMM4); PRINTF("\r\nSPI board to board polling example started!\r\n"); /* Master config */ spi_master_config_t masterConfig; memset(&masterConfig, 0, sizeof(masterConfig)); masterConfig.baudRate_Bps = 500000U; masterConfig.enableLoopback = false; masterConfig.phase = kSPI_ClockPhaseFirstEdge; masterConfig.polarity = kSPI_ClockPolarityActiveHigh; masterConfig.direction = kSPI_MsbFirst; masterConfig.dataMode = kSPI_8BitMode; masterConfig.txWatermark = kSPI_TxFifoOneHalfEmpty; masterConfig.rxWatermark = kSPI_RxFifoOneHalfFull; masterConfig.pinMode = kSPI_PinModeNormal; masterConfig.outputMode = kSPI_SlaveSelectAutomaticOutput; masterConfig.inputDelayInNanoSec = 1000U; masterConfig.transferDelayInNanoSec = 1000U; masterConfig.csHoldTimeInNanoSec = 1000U; masterConfig.csSetupTimeInNanoSec = 1000U; sourceClock = EXAMPLE_SPI_MASTER_CLK_FREQ; SPI_MasterInit(EXAMPLE_SPI_MASTER, &masterConfig, sourceClock); NVIC_SetPriority(EXAMPLE_SPI_MASTER_IRQ, 2U); /* Slave select */ uint8_t slaveSelectValue = 0x01U << EXAMPLE_SPI_SLAVE_SELECT_INDEX; /* Init transfer structure */ g_masterXfer.txData = NULL; g_masterXfer.rxData = g_masterRxData; g_masterXfer.dataSize = BUFFER_SIZE; g_masterXfer.configFlags = kSPI_FrameAssert; while (1) { /* Start master transfer */ SPI_MasterTransferBlocking(EXAMPLE_SPI_MASTER, &g_masterXfer); /* Print master received data */ PRINTF("Master received:\r\n"); for (i = 0U; i < BUFFER_SIZE; i++) { PRINTF(" 0x%x\r\n", g_masterRxData[i]); } /* Wait for a while */ for (i = 0U; i < 10000000U; i++) { __asm("NOP"); } } } ``` 此示例程序使用SPI4作为主设备,AD7616的SPI片选引脚连接到了GPIO_AD_B1_13。在主设备初始化后,使用`SPI_MasterTransferBlocking`函数进行数据传输。在接收到数据后,使用PRINTF打印数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值